Class: Kitsune::Kit::Configuration::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/kitsune/kit/configuration.rb

Constant Summary collapse

RESOURCE_NAME =
/\A[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\z/
ENV_NAME =
/\A[A-Z][A-Z0-9_]*\z/
SSH_USER =
/\A[a-z_][a-z0-9_-]{0,31}\z/
IMAGE =
%r{\A[a-z0-9]+(?:[._/-][a-z0-9]+)*(?::[a-zA-Z0-9][a-zA-Z0-9._-]*)?(?:@sha256:[a-f0-9]{64})?\z}
INSECURE_SECRETS =
%w[password postgres redis changeme change-me secret admin].freeze

Instance Method Summary collapse

Constructor Details

#initialize(config, env: ENV) ⇒ Validator

Returns a new instance of Validator.



338
339
340
341
342
# File 'lib/kitsune/kit/configuration.rb', line 338

def initialize(config, env: ENV)
  @config = config
  @env = env
  @errors = []
end

Instance Method Details

#validate!Object



344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
# File 'lib/kitsune/kit/configuration.rb', line 344

def validate!
  validate_provider
  validate_server
  validate_ssh
  validate_service("postgres", @config.services.postgres)
  validate_service("redis", @config.services.redis)
  validate_system
  validate_dns
  return @config if @errors.empty?

  raise Errors::ConfigurationError.new(
    "invalid configuration:\n- #{@errors.join("\n- ")}",
    hint: "Correct .kitsune/config.yml or the selected environment file."
  )
end