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, root: Dir.pwd, validate_secrets: true) ⇒ Validator

Returns a new instance of Validator.



369
370
371
372
373
374
375
# File 'lib/kitsune/kit/configuration.rb', line 369

def initialize(config, env: ENV, root: Dir.pwd, validate_secrets: true)
  @config = config
  @env = env
  @root = Pathname(root).expand_path
  @validate_secrets = validate_secrets
  @errors = []
end

Instance Method Details

#validate!Object



377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
# File 'lib/kitsune/kit/configuration.rb', line 377

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