uffizzi_core 0.1.16 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +1 -1
- data/app/forms/uffizzi_core/api/cli/v1/deployment/create_form.rb +1 -0
- data/app/forms/uffizzi_core/api/cli/v1/template/create_form.rb +2 -0
- data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/container_serializer.rb +2 -1
- data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer.rb +1 -1
- data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer.rb +16 -1
- data/app/services/uffizzi_core/compose_file/builders/container_builder_service.rb +13 -7
- data/app/services/uffizzi_core/compose_file/{configs_options_service.rb → parsers/configs_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{continuous_preview_options_service.rb → parsers/continuous_preview_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{ingress_options_service.rb → parsers/ingress_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{secrets_options_service.rb → parsers/secrets_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/command_service.rb → parsers/services/command_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/configs_service.rb → parsers/services/configs_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/deploy_service.rb → parsers/services/deploy_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/entrypoint_service.rb → parsers/services/entrypoint_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/env_file_service.rb → parsers/services/env_file_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/environment_service.rb → parsers/services/environment_parser_service.rb} +2 -2
- data/app/services/uffizzi_core/compose_file/parsers/services/healthcheck_parser_service.rb +73 -0
- data/app/services/uffizzi_core/compose_file/{services_options/image_service.rb → parsers/services/image_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options/secrets_service.rb → parsers/services/secrets_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/{services_options_service.rb → parsers/services_parser_service.rb} +12 -10
- data/app/services/uffizzi_core/compose_file/{variables_service.rb → parsers/variables_parser_service.rb} +1 -1
- data/app/services/uffizzi_core/compose_file/template_service.rb +4 -4
- data/app/services/uffizzi_core/compose_file_service.rb +10 -6
- data/app/services/uffizzi_core/deployment_service.rb +14 -4
- data/config/locales/en.yml +1 -0
- data/db/migrate/20220419074956_add_health_check_to_containers.rb +7 -0
- data/lib/uffizzi_core/version.rb +1 -1
- metadata +18 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a31b2584109bcdd076e1cb1254cd0f2449337f4bf23efa6b47666e43bb9e8f7b
|
4
|
+
data.tar.gz: 5c645f212bb2b5b328d2de38e6545b5b7af83095a5eccef66f38a240fade29b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f17aee88420476b88e898523e5611c87f8151119135618f68b0a9741f7de47490fb5652ee0658d572f024f4528c62a97bd5845a2bd3173cb27860870e272135
|
7
|
+
data.tar.gz: bb6da9566c8c67ec7d178ee79f811e0a2629d50d7677b7dd981247a9089866781c28e9b447c015bec311435383cda609afcc0b69bf9e51a513e615e526da2771
|
@@ -16,6 +16,7 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
|
|
16
16
|
:command,
|
17
17
|
:receive_incoming_requests,
|
18
18
|
:continuously_deploy,
|
19
|
+
{ healthcheck: {} },
|
19
20
|
{ variables: [:name, :value],
|
20
21
|
secret_variables: [:name, :value],
|
21
22
|
repo_attributes: [
|
@@ -17,6 +17,8 @@ class UffizziCore::Api::Cli::V1::Template::CreateForm < UffizziCore::Template
|
|
17
17
|
:receive_incoming_requests,
|
18
18
|
:continuously_deploy,
|
19
19
|
:service_name,
|
20
|
+
:name,
|
21
|
+
:healthcheck,
|
20
22
|
{ variables: [:name, :value],
|
21
23
|
secret_variables: [:name, :value],
|
22
24
|
repo_attributes: [
|
data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/container_serializer.rb
CHANGED
@@ -19,7 +19,8 @@ class UffizziCore::Api::Cli::V1::Projects::DeploymentSerializer::ContainerSerial
|
|
19
19
|
:public,
|
20
20
|
:repo_id,
|
21
21
|
:continuously_deploy,
|
22
|
-
:receive_incoming_requests
|
22
|
+
:receive_incoming_requests,
|
23
|
+
:healthcheck
|
23
24
|
|
24
25
|
def secret_variables
|
25
26
|
return unless object.secret_variables.present?
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::Api::Cli::V1::Projects::Deployments::ContainerSerializer < UffizziCore::BaseSerializer
|
4
|
-
attributes :id, :name, :memory_limit, :memory_request, :continuously_deploy, :variables, :secret_variables
|
4
|
+
attributes :id, :name, :memory_limit, :memory_request, :continuously_deploy, :variables, :secret_variables, :healthcheck
|
5
5
|
|
6
6
|
has_many :container_config_files
|
7
7
|
|
@@ -15,7 +15,8 @@ class UffizziCore::Controller::DeployContainers::ContainerSerializer < UffizziCo
|
|
15
15
|
:target_port,
|
16
16
|
:public,
|
17
17
|
:controller_name,
|
18
|
-
:receive_incoming_requests
|
18
|
+
:receive_incoming_requests,
|
19
|
+
:healthcheck
|
19
20
|
|
20
21
|
has_many :container_config_files
|
21
22
|
|
@@ -52,4 +53,18 @@ class UffizziCore::Controller::DeployContainers::ContainerSerializer < UffizziCo
|
|
52
53
|
def command
|
53
54
|
object.command.blank? ? nil : JSON.parse(object.command)
|
54
55
|
end
|
56
|
+
|
57
|
+
def healthcheck
|
58
|
+
return {} if object.healthcheck.nil?
|
59
|
+
|
60
|
+
command = object.healthcheck['test']
|
61
|
+
new_command = if command.is_a?(Array)
|
62
|
+
items_to_remove = ['CMD', 'CMD-SHELL']
|
63
|
+
command.select { |item| items_to_remove.exclude?(item) }
|
64
|
+
elsif object.healthcheck['test'].is_a?(String)
|
65
|
+
command.split
|
66
|
+
end
|
67
|
+
|
68
|
+
object.healthcheck.merge(test: new_command)
|
69
|
+
end
|
55
70
|
end
|
@@ -17,18 +17,14 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
|
|
17
17
|
configs_data = container_data[:configs] || []
|
18
18
|
secrets = container_data[:secrets] || []
|
19
19
|
container_name = container_data[:container_name]
|
20
|
-
|
20
|
+
healthcheck_data = container_data[:healthcheck] || {}
|
21
21
|
|
22
22
|
env_file_dependencies = UffizziCore::ComposeFile::GithubDependenciesService.env_file_dependencies_for_container(compose_dependencies,
|
23
23
|
container_name)
|
24
24
|
configs_dependencies = UffizziCore::ComposeFile::GithubDependenciesService.configs_dependencies_for_container(compose_dependencies,
|
25
25
|
container_name)
|
26
|
-
|
27
26
|
is_ingress = ingress_container?(container_name, ingress_data)
|
28
|
-
repo_attributes =
|
29
|
-
|
30
|
-
repo_attributes = set_continuous_preview_attributes_to_repo(repo_attributes, continuous_preview_global_data.to_h,
|
31
|
-
continuous_preview_container_data.to_h)
|
27
|
+
repo_attributes = repo_attributes(container_data, continuous_preview_global_data)
|
32
28
|
|
33
29
|
{
|
34
30
|
tag: tag(image_data, repo_attributes),
|
@@ -46,11 +42,20 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
|
|
46
42
|
receive_incoming_requests: is_ingress,
|
47
43
|
container_config_files_attributes: config_files(configs_data, configs_dependencies),
|
48
44
|
service_name: container_name,
|
45
|
+
name: container_name,
|
46
|
+
healthcheck: healthcheck_data,
|
49
47
|
}
|
50
48
|
end
|
51
49
|
|
52
50
|
private
|
53
51
|
|
52
|
+
def repo_attributes(container_data, continuous_preview_global_data)
|
53
|
+
repo_attributes = build_repo_attributes(container_data)
|
54
|
+
continuous_preview_container_data = container_data[:'x-uffizzi-continuous-preview'] || container_data[:'x-uffizzi-continuous-previews']
|
55
|
+
|
56
|
+
set_continuous_preview_attributes_to_repo(repo_attributes, continuous_preview_global_data.to_h, continuous_preview_container_data.to_h)
|
57
|
+
end
|
58
|
+
|
54
59
|
def set_continuous_preview_attributes_to_repo(repo_attributes, global_data, container_data)
|
55
60
|
condition_attributes = [
|
56
61
|
:deploy_preview_when_pull_request_is_opened,
|
@@ -148,8 +153,9 @@ class UffizziCore::ComposeFile::Builders::ContainerBuilderService
|
|
148
153
|
memory_value
|
149
154
|
end
|
150
155
|
|
151
|
-
def build_repo_attributes(container_data
|
156
|
+
def build_repo_attributes(container_data)
|
152
157
|
repo_type = repo_type(container_data)
|
158
|
+
image_data = container_data[:image]
|
153
159
|
|
154
160
|
case repo_type
|
155
161
|
when UffizziCore::Repo::DockerHub.name
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class UffizziCore::ComposeFile::
|
3
|
+
class UffizziCore::ComposeFile::Parsers::ContinuousPreviewParserService
|
4
4
|
class << self
|
5
5
|
def parse(continuous_preview_data)
|
6
6
|
return {} if continuous_preview_data.nil?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class UffizziCore::ComposeFile::
|
3
|
+
class UffizziCore::ComposeFile::Parsers::IngressParserService
|
4
4
|
class << self
|
5
5
|
def parse(ingress_data, services_data)
|
6
6
|
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.no_ingress') if ingress_data.nil?
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class UffizziCore::ComposeFile::
|
4
|
-
extend UffizziCore::ComposeFile::
|
3
|
+
class UffizziCore::ComposeFile::Parsers::Services::EnvironmentParserService
|
4
|
+
extend UffizziCore::ComposeFile::Parsers::VariablesParserService
|
5
5
|
|
6
6
|
class << self
|
7
7
|
def parse(environment)
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class UffizziCore::ComposeFile::Parsers::Services::HealthcheckParserService
|
4
|
+
REQUIRED_START_COMMANDS = ['NONE', 'CMD', 'CMD-SHELL'].freeze
|
5
|
+
|
6
|
+
class << self
|
7
|
+
def parse(healthcheck_data)
|
8
|
+
return {} if healthcheck_data.blank?
|
9
|
+
|
10
|
+
command = parse_command(healthcheck_data)
|
11
|
+
|
12
|
+
{
|
13
|
+
test: command,
|
14
|
+
interval: parse_time(healthcheck_data['interval']),
|
15
|
+
timeout: parse_time(healthcheck_data['timeout']),
|
16
|
+
retries: parse_retries(healthcheck_data['retries']),
|
17
|
+
start_period: parse_time(healthcheck_data['start_period']),
|
18
|
+
disable: parse_disable_option(healthcheck_data['disable'], command),
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def parse_command(healthcheck_data)
|
25
|
+
command = healthcheck_data['test']
|
26
|
+
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.string_or_array_error', option: :test) if command.nil?
|
27
|
+
|
28
|
+
case command
|
29
|
+
when Array
|
30
|
+
start_command = command.first
|
31
|
+
raise UffizziCore::ComposeFile::ParseError unless REQUIRED_START_COMMANDS.include?(start_command)
|
32
|
+
|
33
|
+
command
|
34
|
+
when String
|
35
|
+
command
|
36
|
+
else
|
37
|
+
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.invalid_type', option: :test)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
def parse_retries(value)
|
42
|
+
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.invalid_integer', option: :retries) unless value.is_a?(Integer)
|
43
|
+
end
|
44
|
+
|
45
|
+
def parse_time(value)
|
46
|
+
tokens = {
|
47
|
+
's' => 1,
|
48
|
+
'm' => 60,
|
49
|
+
'h' => (60 * 60),
|
50
|
+
'd' => (60 * 60 * 24),
|
51
|
+
}
|
52
|
+
|
53
|
+
time_parts = value.scan(/(\d+)(\w)/).compact
|
54
|
+
|
55
|
+
time_parts.reduce(0) do |acc, part|
|
56
|
+
amount, measure = part
|
57
|
+
acc += amount.to_i * tokens[measure]
|
58
|
+
|
59
|
+
acc
|
60
|
+
rescue StandardError
|
61
|
+
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.invalid_time_interval')
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def parse_disable_option(value, command)
|
66
|
+
return true if command.is_a?(Array) && command.first == 'NONE'
|
67
|
+
return false if value.nil?
|
68
|
+
return value if value.in?([true, false])
|
69
|
+
|
70
|
+
raise UffizziCore::ComposeFile::ParseError, I18n.t('compose.invalid_bool_value', field: 'disable', value: value)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class UffizziCore::ComposeFile::
|
3
|
+
class UffizziCore::ComposeFile::Parsers::ServicesParserService
|
4
4
|
class << self
|
5
5
|
include UffizziCore::DependencyInjectionConcern
|
6
6
|
|
@@ -27,25 +27,27 @@ class UffizziCore::ComposeFile::ServicesOptionsService
|
|
27
27
|
|
28
28
|
options_data[service_key] = case service_key
|
29
29
|
when :image
|
30
|
-
UffizziCore::ComposeFile::
|
30
|
+
UffizziCore::ComposeFile::Parsers::Services::ImageParserService.parse(value)
|
31
31
|
when :build
|
32
32
|
check_and_parse_build_option(value, compose_payload)
|
33
33
|
when :env_file
|
34
|
-
UffizziCore::ComposeFile::
|
34
|
+
UffizziCore::ComposeFile::Parsers::Services::EnvFileParserService.parse(value)
|
35
35
|
when :environment
|
36
|
-
UffizziCore::ComposeFile::
|
36
|
+
UffizziCore::ComposeFile::Parsers::Services::EnvironmentParserService.parse(value)
|
37
37
|
when :configs
|
38
|
-
UffizziCore::ComposeFile::
|
38
|
+
UffizziCore::ComposeFile::Parsers::Services::ConfigsParserService.parse(value, global_configs_data)
|
39
39
|
when :secrets
|
40
|
-
UffizziCore::ComposeFile::
|
40
|
+
UffizziCore::ComposeFile::Parsers::Services::SecretsParserService.parse(value, global_secrets_data)
|
41
41
|
when :deploy
|
42
|
-
UffizziCore::ComposeFile::
|
42
|
+
UffizziCore::ComposeFile::Parsers::Services::DeployParserService.parse(value)
|
43
43
|
when :entrypoint
|
44
|
-
UffizziCore::ComposeFile::
|
44
|
+
UffizziCore::ComposeFile::Parsers::Services::EntrypointParserService.parse(value)
|
45
45
|
when :command
|
46
|
-
UffizziCore::ComposeFile::
|
46
|
+
UffizziCore::ComposeFile::Parsers::Services::CommandParserService.parse(value)
|
47
|
+
when :healthcheck
|
48
|
+
UffizziCore::ComposeFile::Parsers::Services::HealthcheckParserService.parse(value)
|
47
49
|
when :'x-uffizzi-continuous-preview', :'x-uffizzi-continuous-previews'
|
48
|
-
UffizziCore::ComposeFile::
|
50
|
+
UffizziCore::ComposeFile::Parsers::ContinuousPreviewParserService.parse(value)
|
49
51
|
end
|
50
52
|
end
|
51
53
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::ComposeFile::TemplateService
|
4
|
-
def initialize(
|
4
|
+
def initialize(cli_form, project, user)
|
5
5
|
@project = project
|
6
6
|
@user = user
|
7
|
-
@compose_dependencies =
|
8
|
-
@compose_data =
|
9
|
-
@compose_repositories =
|
7
|
+
@compose_dependencies = cli_form.compose_dependencies
|
8
|
+
@compose_data = cli_form.compose_data
|
9
|
+
@compose_repositories = cli_form.compose_repositories
|
10
10
|
end
|
11
11
|
|
12
12
|
def create_template(compose_file_form)
|
@@ -17,16 +17,20 @@ module UffizziCore::ComposeFileService
|
|
17
17
|
def parse(compose_content, compose_payload = {})
|
18
18
|
compose_data = load_compose_data(compose_content)
|
19
19
|
check_config_options_format(compose_data)
|
20
|
-
configs_data = UffizziCore::ComposeFile::
|
21
|
-
secrets_data = UffizziCore::ComposeFile::
|
22
|
-
containers_data = UffizziCore::ComposeFile::
|
23
|
-
|
20
|
+
configs_data = UffizziCore::ComposeFile::Parsers::ConfigsParserService.parse(compose_data['configs'])
|
21
|
+
secrets_data = UffizziCore::ComposeFile::Parsers::SecretsParserService.parse(compose_data['secrets'])
|
22
|
+
containers_data = UffizziCore::ComposeFile::Parsers::ServicesParserService.parse(
|
23
|
+
compose_data['services'],
|
24
|
+
configs_data,
|
25
|
+
secrets_data,
|
26
|
+
compose_payload,
|
27
|
+
)
|
24
28
|
|
25
29
|
continuous_preview_option = UffizziCore::ComposeFile::ConfigOptionService.continuous_preview_option(compose_data)
|
26
|
-
continuous_preview_data = UffizziCore::ComposeFile::
|
30
|
+
continuous_preview_data = UffizziCore::ComposeFile::Parsers::ContinuousPreviewParserService.parse(continuous_preview_option)
|
27
31
|
|
28
32
|
ingress_option = UffizziCore::ComposeFile::ConfigOptionService.ingress_option(compose_data)
|
29
|
-
ingress_data = UffizziCore::ComposeFile::
|
33
|
+
ingress_data = UffizziCore::ComposeFile::Parsers::IngressParserService.parse(ingress_option, compose_data['services'])
|
30
34
|
|
31
35
|
{
|
32
36
|
containers: containers_data,
|
@@ -14,7 +14,6 @@ module UffizziCore::DeploymentService
|
|
14
14
|
class << self
|
15
15
|
def create_from_compose(compose_file, project, user)
|
16
16
|
deployment_attributes = ActionController::Parameters.new(compose_file.template.payload)
|
17
|
-
|
18
17
|
deployment_form = UffizziCore::Api::Cli::V1::Deployment::CreateForm.new(deployment_attributes)
|
19
18
|
deployment_form.assign_dependences!(project, user)
|
20
19
|
deployment_form.compose_file = compose_file
|
@@ -104,8 +103,9 @@ module UffizziCore::DeploymentService
|
|
104
103
|
pull_request_payload = continuous_preview_payload['pull_request']
|
105
104
|
repo_name = pull_request_payload['repository_full_name'].split('/').last
|
106
105
|
deployment_name = name(deployment)
|
106
|
+
subdomain = "pr#{pull_request_payload['id']}-#{deployment_name}-#{repo_name}-#{project.slug}"
|
107
107
|
|
108
|
-
|
108
|
+
format_subdomain(subdomain)
|
109
109
|
end
|
110
110
|
|
111
111
|
def build_docker_continuous_preview_subdomain(deployment)
|
@@ -115,14 +115,17 @@ module UffizziCore::DeploymentService
|
|
115
115
|
repo_name = docker_payload['image'].split('/').last.gsub('_', '-')
|
116
116
|
image_tag = docker_payload['tag'].gsub('_', '-')
|
117
117
|
deployment_name = name(deployment)
|
118
|
+
subdomain = "#{image_tag}-#{deployment_name}-#{repo_name}-#{project.slug}"
|
118
119
|
|
119
|
-
|
120
|
+
format_subdomain(subdomain)
|
120
121
|
end
|
121
122
|
|
122
123
|
def build_default_subdomain(deployment)
|
123
124
|
deployment_name = name(deployment)
|
124
125
|
slug = deployment.project.slug.to_s
|
125
|
-
"#{deployment_name}
|
126
|
+
subdomain = "#{deployment_name}-#{slug}"
|
127
|
+
|
128
|
+
format_subdomain(subdomain)
|
126
129
|
end
|
127
130
|
|
128
131
|
def build_preview_url(deployment)
|
@@ -293,5 +296,12 @@ module UffizziCore::DeploymentService
|
|
293
296
|
container.variables.push(*envs)
|
294
297
|
end
|
295
298
|
end
|
299
|
+
|
300
|
+
def format_subdomain(full_subdomain_name)
|
301
|
+
subdomain_length_limit = Settings.deployment.subdomain.length_limit
|
302
|
+
return full_subdomain_name if full_subdomain_name.length <= subdomain_length_limit
|
303
|
+
|
304
|
+
full_subdomain_name.slice(0, subdomain_length_limit)
|
305
|
+
end
|
296
306
|
end
|
297
307
|
end
|
data/config/locales/en.yml
CHANGED
@@ -57,6 +57,7 @@ en:
|
|
57
57
|
continuous_preview_in_service_level: The option '%{option}' is not supported for service-level. Use 'x-uffizzi-continuous-preview' instead
|
58
58
|
file_already_exists: A compose file already exists for this project. Run 'uffizzi compose update' to update this file or 'uffizzi compose rm' to remove it. For more options, see 'uffizzi compose --help'
|
59
59
|
invalid_healthcheck_command: "Service '%{name}' defines an invalid healthcheck: when 'test' is a list the first item must be either NONE, CMD or CMD-SHELL"
|
60
|
+
invalid_time_interval: The time interval should be in the following format '{hours}h{minutes}m{seconds}s'. At least one value must be present.
|
60
61
|
string_or_array_error: "'%{option}' contains an invalid type, it should be a string, or an array"
|
61
62
|
not_implemented: "'%{option}' option is not implemented"
|
62
63
|
infinite_recursion: "Found infinite recursion for key '%{key}'"
|
data/lib/uffizzi_core/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uffizzi_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Thurman
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-06-
|
12
|
+
date: 2022-06-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aasm
|
@@ -871,25 +871,26 @@ files:
|
|
871
871
|
- app/services/uffizzi_core/compose_file/builders/variables_builder_service.rb
|
872
872
|
- app/services/uffizzi_core/compose_file/config_files_service.rb
|
873
873
|
- app/services/uffizzi_core/compose_file/config_option_service.rb
|
874
|
-
- app/services/uffizzi_core/compose_file/configs_options_service.rb
|
875
874
|
- app/services/uffizzi_core/compose_file/container_service.rb
|
876
|
-
- app/services/uffizzi_core/compose_file/continuous_preview_options_service.rb
|
877
875
|
- app/services/uffizzi_core/compose_file/dependencies_service.rb
|
878
876
|
- app/services/uffizzi_core/compose_file/errors_service.rb
|
879
877
|
- app/services/uffizzi_core/compose_file/github_dependencies_service.rb
|
880
|
-
- app/services/uffizzi_core/compose_file/
|
881
|
-
- app/services/uffizzi_core/compose_file/
|
882
|
-
- app/services/uffizzi_core/compose_file/
|
883
|
-
- app/services/uffizzi_core/compose_file/
|
884
|
-
- app/services/uffizzi_core/compose_file/
|
885
|
-
- app/services/uffizzi_core/compose_file/
|
886
|
-
- app/services/uffizzi_core/compose_file/
|
887
|
-
- app/services/uffizzi_core/compose_file/
|
888
|
-
- app/services/uffizzi_core/compose_file/
|
889
|
-
- app/services/uffizzi_core/compose_file/
|
890
|
-
- app/services/uffizzi_core/compose_file/
|
878
|
+
- app/services/uffizzi_core/compose_file/parsers/configs_parser_service.rb
|
879
|
+
- app/services/uffizzi_core/compose_file/parsers/continuous_preview_parser_service.rb
|
880
|
+
- app/services/uffizzi_core/compose_file/parsers/ingress_parser_service.rb
|
881
|
+
- app/services/uffizzi_core/compose_file/parsers/secrets_parser_service.rb
|
882
|
+
- app/services/uffizzi_core/compose_file/parsers/services/command_parser_service.rb
|
883
|
+
- app/services/uffizzi_core/compose_file/parsers/services/configs_parser_service.rb
|
884
|
+
- app/services/uffizzi_core/compose_file/parsers/services/deploy_parser_service.rb
|
885
|
+
- app/services/uffizzi_core/compose_file/parsers/services/entrypoint_parser_service.rb
|
886
|
+
- app/services/uffizzi_core/compose_file/parsers/services/env_file_parser_service.rb
|
887
|
+
- app/services/uffizzi_core/compose_file/parsers/services/environment_parser_service.rb
|
888
|
+
- app/services/uffizzi_core/compose_file/parsers/services/healthcheck_parser_service.rb
|
889
|
+
- app/services/uffizzi_core/compose_file/parsers/services/image_parser_service.rb
|
890
|
+
- app/services/uffizzi_core/compose_file/parsers/services/secrets_parser_service.rb
|
891
|
+
- app/services/uffizzi_core/compose_file/parsers/services_parser_service.rb
|
892
|
+
- app/services/uffizzi_core/compose_file/parsers/variables_parser_service.rb
|
891
893
|
- app/services/uffizzi_core/compose_file/template_service.rb
|
892
|
-
- app/services/uffizzi_core/compose_file/variables_service.rb
|
893
894
|
- app/services/uffizzi_core/compose_file_service.rb
|
894
895
|
- app/services/uffizzi_core/container_service.rb
|
895
896
|
- app/services/uffizzi_core/controller_service.rb
|
@@ -925,6 +926,7 @@ files:
|
|
925
926
|
- db/migrate/20220329123323_rename_project_secrets_to_secrets.rb
|
926
927
|
- db/migrate/20220329124542_add_resource_to_secrets.rb
|
927
928
|
- db/migrate/20220329143241_remove_project_ref_from_secrets.rb
|
929
|
+
- db/migrate/20220419074956_add_health_check_to_containers.rb
|
928
930
|
- db/migrate/20220525113412_rename_name_to_uffizzi_containers.rb
|
929
931
|
- db/seeds.rb
|
930
932
|
- lib/tasks/uffizzi_core_tasks.rake
|