uffizzi_core 0.7.1 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/forms/uffizzi_core/api/cli/v1/deployment/create_form.rb +14 -0
- data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer.rb +1 -6
- data/app/services/uffizzi_core/deployment_service.rb +20 -23
- data/lib/uffizzi_core/version.rb +1 -1
- metadata +2 -3
- data/app/models/uffizzi_core/repo/github.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dea69b2a59531600dfb66428f656f48199aca57b46090feb7908c4c2649d6a0
|
4
|
+
data.tar.gz: '0049394671ce7727844814ebe46a671a9a1d420063546d5d12faf1d61748f5bb'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 278c7ce3923efa9d4db4476eb3ddad88c28b664af7fbf75a0c7547921d478ad6860fd7ea5987932bbcdcf1d01a418c55bac388a864e1f186468d3ec163f911cf
|
7
|
+
data.tar.gz: 83927e7d75d0e926cc1d42f16f31c9e086de1daedd33cb1315b60e118896f9d90b3ee102893ef7e9716e7e354c793610e609ae64aaf7be1657694fe166a62480
|
@@ -51,6 +51,7 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
|
|
51
51
|
validate :check_exists_ingress_container
|
52
52
|
validate :check_max_memory_limit
|
53
53
|
validate :check_max_memory_request
|
54
|
+
validate :check_secrets_exist_in_database
|
54
55
|
|
55
56
|
def assign_dependences!(project, user)
|
56
57
|
self.project = project
|
@@ -91,4 +92,17 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
|
|
91
92
|
|
92
93
|
errors.add(:containers, :max_memory_request_error, max: project.account.container_memory_limit)
|
93
94
|
end
|
95
|
+
|
96
|
+
def check_secrets_exist_in_database
|
97
|
+
return if compose_file.nil?
|
98
|
+
|
99
|
+
existing_secrets = project.secrets.pluck('name')
|
100
|
+
compose_file.template.payload['containers_attributes']
|
101
|
+
.map { |container| container['secret_variables'].map { |secret| secret['name'] } }.flatten.uniq
|
102
|
+
.select { |secret| existing_secrets.exclude?(secret) }
|
103
|
+
.each do |secret|
|
104
|
+
error_message = I18n.t('compose.project_secret_not_found', secret: secret)
|
105
|
+
errors.add(:secret_variables, error_message)
|
106
|
+
end
|
107
|
+
end
|
94
108
|
end
|
@@ -41,12 +41,7 @@ class UffizziCore::Controller::DeployContainers::ContainerSerializer < UffizziCo
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def tag
|
44
|
-
|
45
|
-
when UffizziCore::Repo::Github.name
|
46
|
-
UffizziCore::RepoService.tag(object.repo)
|
47
|
-
else
|
48
|
-
object.tag
|
49
|
-
end
|
44
|
+
object.tag
|
50
45
|
end
|
51
46
|
|
52
47
|
def entrypoint
|
@@ -20,11 +20,7 @@ class UffizziCore::DeploymentService
|
|
20
20
|
deployment_form.creation_source = UffizziCore::Deployment.creation_source.compose_file_manual
|
21
21
|
deployment_form.metadata = metadata || {}
|
22
22
|
|
23
|
-
if deployment_form.save
|
24
|
-
update_subdomain!(deployment_form)
|
25
|
-
|
26
|
-
UffizziCore::Deployment::CreateJob.perform_async(deployment_form.id)
|
27
|
-
end
|
23
|
+
run_deployment_creation_tasks(deployment_form) if deployment_form.save
|
28
24
|
|
29
25
|
deployment_form
|
30
26
|
end
|
@@ -91,27 +87,28 @@ class UffizziCore::DeploymentService
|
|
91
87
|
end
|
92
88
|
|
93
89
|
def build_subdomain(deployment)
|
94
|
-
if deployment
|
95
|
-
continuous_preview_payload = deployment.continuous_preview_payload
|
90
|
+
return build_docker_continuous_preview_subdomain(deployment) if deployment&.continuous_preview_payload&.fetch('docker', nil).present?
|
96
91
|
|
97
|
-
|
98
|
-
|
99
|
-
|
92
|
+
github_metadata = deployment.metadata.dig('labels', 'github')
|
93
|
+
return build_pull_request_subdomain(deployment) if
|
94
|
+
github_metadata&.dig('pull_request', 'number').present? && github_metadata&.dig('repository').present?
|
100
95
|
|
101
96
|
build_default_subdomain(deployment)
|
102
97
|
end
|
103
98
|
|
104
99
|
def build_pull_request_subdomain(deployment)
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
deployment_name = name(deployment)
|
110
|
-
subdomain = "pr#{pull_request_payload['id']}-#{deployment_name}-#{repo_name}-#{project.slug}"
|
111
|
-
|
100
|
+
github_payload = deployment.metadata.dig('labels', 'github')
|
101
|
+
repo_name = github_payload['repository'].split('/').last
|
102
|
+
pull_request_number = github_payload['pull_request']['number']
|
103
|
+
subdomain = "pr-#{pull_request_number}-#{name(deployment)}-#{repo_name}-#{deployment.project.slug}"
|
112
104
|
format_subdomain(subdomain)
|
113
105
|
end
|
114
106
|
|
107
|
+
def update_subdomain!(deployment)
|
108
|
+
deployment.subdomain = build_subdomain(deployment)
|
109
|
+
deployment.save!
|
110
|
+
end
|
111
|
+
|
115
112
|
def build_docker_continuous_preview_subdomain(deployment)
|
116
113
|
project = deployment.project
|
117
114
|
continuous_preview_payload = deployment.continuous_preview_payload
|
@@ -204,12 +201,6 @@ class UffizziCore::DeploymentService
|
|
204
201
|
"deployment-#{deployment.id}"
|
205
202
|
end
|
206
203
|
|
207
|
-
def update_subdomain!(deployment)
|
208
|
-
deployment.subdomain = build_subdomain(deployment)
|
209
|
-
|
210
|
-
deployment.save!
|
211
|
-
end
|
212
|
-
|
213
204
|
def pull_request_payload_present?(deployment)
|
214
205
|
deployment.continuous_preview_payload.present? && deployment.continuous_preview_payload['pull_request'].present?
|
215
206
|
end
|
@@ -222,6 +213,12 @@ class UffizziCore::DeploymentService
|
|
222
213
|
|
223
214
|
private
|
224
215
|
|
216
|
+
def run_deployment_creation_tasks(deployment)
|
217
|
+
update_subdomain!(deployment)
|
218
|
+
|
219
|
+
UffizziCore::Deployment::CreateJob.perform_async(deployment.id)
|
220
|
+
end
|
221
|
+
|
225
222
|
def deployment_process_status(deployment)
|
226
223
|
containers = deployment.active_containers
|
227
224
|
activity_items = containers.map { |container| container.activity_items.order_by_id.last }.compact
|
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.8.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-08-
|
12
|
+
date: 2022-08-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aasm
|
@@ -829,7 +829,6 @@ files:
|
|
829
829
|
- app/models/uffizzi_core/repo/azure.rb
|
830
830
|
- app/models/uffizzi_core/repo/docker_hub.rb
|
831
831
|
- app/models/uffizzi_core/repo/docker_registry.rb
|
832
|
-
- app/models/uffizzi_core/repo/github.rb
|
833
832
|
- app/models/uffizzi_core/repo/github_container_registry.rb
|
834
833
|
- app/models/uffizzi_core/repo/google.rb
|
835
834
|
- app/models/uffizzi_core/role.rb
|