module Kontena::Cli::Apps::YAML::Validations

Public Instance Methods

common_validations() click to toggle source
# File lib/kontena/cli/apps/yaml/validations.rb, line 21
def common_validations
  {
     'image' => optional('string'), # it's optional because some base yml file might contain image option
     'extends' => optional('valid_extends'),
     'stateful' => optional('boolean'),
     'affinity' => optional('valid_affinities'),
     'cap_add' => optional('array'),
     'cap_drop' => optional('array'),
     'command' => optional('string'),
     'cpu_shares' => optional('integer'),
     'external_links' => optional('array'),
     'mem_limit' => optional('string'),
     'mem_swaplimit' => optional('string'),
     'environment' => optional(-> (value) { value.is_a?(Array) || value.is_a?(Hash) }),
     'env_file' => optional(-> (value) { value.is_a?(String) || value.is_a?(Array) }),
     'instances' => optional('integer'),
     'links' => optional(-> (value) { value.is_a?(Array) || value.nil? }),
     'ports' => optional('array'),
     'pid' => optional('string'),
     'privileged' => optional('boolean'),
     'user' => optional('string'),
     'volumes' => optional('array'),
     'volumes_from' => optional('array'),
     'secrets' => optional('valid_secrets'),
     'hooks' => optional('valid_hooks'),
     'deploy' => optional({
       'strategy' => optional(%w(ha daemon random)),
       'wait_for_port' => optional('integer'),
       'min_health' => optional('float'),
       'interval' => optional(/^\d+(min|h|d|)$/)
     }),
     'health_check' => optional({
       'protocol' => /^(http|tcp)$/,
       'port' => 'integer',
       'uri' => optional(/\/[\S]*/),
       'timeout' => optional('integer'),
       'interval' => optional('integer'),
       'initial_delay' => optional('integer')
     })
   }
 end
optional(type) click to toggle source
# File lib/kontena/cli/apps/yaml/validations.rb, line 63
def optional(type)
  HashValidator.optional(type)
end
validate_options(service_config) click to toggle source
# File lib/kontena/cli/apps/yaml/validations.rb, line 67
def validate_options(service_config)
  HashValidator.validate(service_config, @schema, true)
end