uffizzi_core 2.2.1 → 2.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +4 -0
- data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments_controller.rb +1 -0
- data/app/lib/uffizzi_core/concerns/models/cluster.rb +3 -1
- data/app/lib/uffizzi_core/concerns/models/deployment.rb +1 -0
- data/app/lib/uffizzi_core/concerns/models/deployment_event.rb +11 -0
- data/app/lib/uffizzi_core/concerns/models/project.rb +1 -0
- data/app/models/uffizzi_core/deployment_event.rb +5 -0
- data/app/serializers/uffizzi_core/controller/create_cluster/cluster_serializer.rb +1 -1
- data/app/services/uffizzi_core/activity_item_service.rb +4 -1
- data/app/services/uffizzi_core/deployment_service.rb +21 -7
- data/db/migrate/20230531135739_create_deployment_events.rb +14 -0
- data/lib/uffizzi_core/version.rb +1 -1
- data/lib/uffizzi_core.rb +1 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed276a0db55ef8e4abe20854cde6ad43b7cb0a5f57f4feeb31181a0f6d2ab4b6
|
4
|
+
data.tar.gz: 90cb1783899f084847430e2e9af0dc65a7c62d45b9d9328e1a15a844e93a961e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f744b78da4678074d957830e75b2262c2e70e5aea369f04d8fc0b4d33560d825e1203cdc78a75cb4565e3395c11e0b24ab8e954b63330d2db20ec67345ea3af
|
7
|
+
data.tar.gz: cd3cff720cc918e38e959932ac19b2c3422bd8c042aea48d1a74584dda6efc6d8ac281d41d618ee3604ba8a0d13b275ffe552269f1c90d4502851892c8222e48
|
@@ -7,6 +7,10 @@ module UffizziCore::DependencyInjectionConcern
|
|
7
7
|
def include_module_if_exists(module_name)
|
8
8
|
include(Object.const_get(module_name)) if Object.const_defined?(module_name)
|
9
9
|
end
|
10
|
+
|
11
|
+
def prepend_module_if_exists(module_name)
|
12
|
+
prepend(Object.const_get(module_name)) if Object.const_defined?(module_name)
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
def user_access_module
|
@@ -133,6 +133,7 @@ class UffizziCore::Api::Cli::V1::Projects::DeploymentsController < UffizziCore::
|
|
133
133
|
# @response 401 Not authorized
|
134
134
|
def destroy
|
135
135
|
UffizziCore::DeploymentService.disable!(deployment)
|
136
|
+
deployment.deployment_events.create!(deployment_state: deployment.state, message: 'Destroyed by CLI')
|
136
137
|
|
137
138
|
head :no_content
|
138
139
|
end
|
@@ -4,6 +4,8 @@ module UffizziCore::Concerns::Models::Cluster
|
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
include UffizziCore::ClusterRepo
|
6
6
|
|
7
|
+
NAMESPACE_PREFIX = 'cluster'
|
8
|
+
|
7
9
|
included do
|
8
10
|
include AASM
|
9
11
|
|
@@ -48,7 +50,7 @@ module UffizziCore::Concerns::Models::Cluster
|
|
48
50
|
end
|
49
51
|
|
50
52
|
def namespace
|
51
|
-
|
53
|
+
[NAMESPACE_PREFIX, id].join('-')
|
52
54
|
end
|
53
55
|
end
|
54
56
|
end
|
@@ -22,6 +22,7 @@ module UffizziCore::Concerns::Models::Deployment
|
|
22
22
|
has_many :credentials, through: :project
|
23
23
|
has_many :containers, dependent: :destroy, index_errors: true
|
24
24
|
has_many :activity_items, dependent: :destroy
|
25
|
+
has_many :deployment_events, dependent: :destroy
|
25
26
|
|
26
27
|
has_one :ingress_container, -> { where(receive_incoming_requests: true) }, class_name: UffizziCore::Container.name
|
27
28
|
validates :kind, presence: true
|
@@ -51,6 +51,7 @@ module UffizziCore::Concerns::Models::Project
|
|
51
51
|
def disable_deployments
|
52
52
|
active_deployments.each do |deployment|
|
53
53
|
UffizziCore::DeploymentService.disable!(deployment)
|
54
|
+
deployment.deployment_events.create!(deployment_state: deployment.state, message: 'Disabled after project was disabled')
|
54
55
|
end
|
55
56
|
end
|
56
57
|
|
@@ -4,6 +4,6 @@ class UffizziCore::Controller::CreateCluster::ClusterSerializer < UffizziCore::B
|
|
4
4
|
attributes :name, :manifest, :base_ingress_host
|
5
5
|
|
6
6
|
def base_ingress_host
|
7
|
-
Settings.app.vcluster_managed_dns_zone
|
7
|
+
[object.namespace, Settings.app.vcluster_managed_dns_zone].join('.')
|
8
8
|
end
|
9
9
|
end
|
@@ -54,7 +54,10 @@ class UffizziCore::ActivityItemService
|
|
54
54
|
return handle_failed_status(activity_item, deployment) if failed?(status)
|
55
55
|
|
56
56
|
if deployed?(status) && UffizziCore::ContainerService.ingress_container?(container)
|
57
|
-
|
57
|
+
deployment.update!(last_deploy_at: last_event.created_at)
|
58
|
+
deployment.deployment_events.create!(deployment_state: status)
|
59
|
+
|
60
|
+
return
|
58
61
|
end
|
59
62
|
|
60
63
|
return unless [UffizziCore::Event.state.building, UffizziCore::Event.state.deploying].include?(status)
|
@@ -1,6 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class UffizziCore::DeploymentService
|
4
|
+
include UffizziCore::DependencyInjectionConcern
|
5
|
+
prepend_module_if_exists('UffizziCore::DeploymentServiceModule')
|
6
|
+
|
4
7
|
MIN_TARGET_PORT_RANGE = 37_000
|
5
8
|
MAX_TARGET_PORT_RANGE = 39_999
|
6
9
|
|
@@ -39,12 +42,8 @@ class UffizziCore::DeploymentService
|
|
39
42
|
deployment.containers.destroy_all
|
40
43
|
deployment.compose_file.destroy! if deployment.compose_file&.kind&.temporary?
|
41
44
|
deployment.activate unless deployment.active?
|
42
|
-
|
43
|
-
|
44
|
-
compose_file_id: compose_file.id,
|
45
|
-
metadata: deployment_form.metadata,
|
46
|
-
}
|
47
|
-
deployment.update!(params)
|
45
|
+
new_params = params_for_update_deployment(deployment_form, compose_file)
|
46
|
+
deployment.update!(new_params)
|
48
47
|
end
|
49
48
|
|
50
49
|
deployment
|
@@ -56,10 +55,15 @@ class UffizziCore::DeploymentService
|
|
56
55
|
update_controller_container_names(deployment)
|
57
56
|
end
|
58
57
|
|
59
|
-
|
58
|
+
status = deployment_process_status(deployment)
|
59
|
+
|
60
|
+
case status
|
60
61
|
when DEPLOYMENT_PROCESS_STATUSES[:building]
|
61
62
|
Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{deployment.id} repeat deploy_containers")
|
62
63
|
UffizziCore::Deployment::DeployContainersJob.perform_in(1.minute, deployment.id, true)
|
64
|
+
unless repeated
|
65
|
+
deployment.deployment_events.create!(deployment_state: status)
|
66
|
+
end
|
63
67
|
when DEPLOYMENT_PROCESS_STATUSES[:deploying]
|
64
68
|
Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{deployment.id} start deploying into controller")
|
65
69
|
|
@@ -67,6 +71,7 @@ class UffizziCore::DeploymentService
|
|
67
71
|
containers_with_variables = add_default_deployment_variables!(containers, deployment)
|
68
72
|
|
69
73
|
UffizziCore::ControllerService.deploy_containers(deployment, containers_with_variables)
|
74
|
+
deployment.deployment_events.create!(deployment_state: status)
|
70
75
|
else
|
71
76
|
Rails.logger.info("DEPLOYMENT_PROCESS deployment_id=#{deployment.id} deployment has builds errors, stopping")
|
72
77
|
end
|
@@ -84,6 +89,7 @@ class UffizziCore::DeploymentService
|
|
84
89
|
return if deployment.failed?
|
85
90
|
|
86
91
|
deployment.fail!
|
92
|
+
deployment.deployment_events.create!(deployment_state: deployment.state)
|
87
93
|
compose_file = deployment.compose_file || deployment.template&.compose_file
|
88
94
|
return unless compose_file&.kind&.temporary?
|
89
95
|
|
@@ -230,5 +236,13 @@ class UffizziCore::DeploymentService
|
|
230
236
|
container.variables.push(*envs)
|
231
237
|
end
|
232
238
|
end
|
239
|
+
|
240
|
+
def params_for_update_deployment(deployment_form, compose_file)
|
241
|
+
{
|
242
|
+
containers: deployment_form.containers,
|
243
|
+
compose_file_id: compose_file.id,
|
244
|
+
metadata: deployment_form.metadata,
|
245
|
+
}
|
246
|
+
end
|
233
247
|
end
|
234
248
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class CreateDeploymentEvents < ActiveRecord::Migration[6.1]
|
4
|
+
def change
|
5
|
+
create_table :uffizzi_core_deployment_events do |t|
|
6
|
+
t.string :deployment_state
|
7
|
+
t.string :message
|
8
|
+
t.timestamps
|
9
|
+
t.references :deployment, null: false,
|
10
|
+
index: { name: :uf_core_dep_events_on_dep },
|
11
|
+
foreign_key: { to_table: :uffizzi_core_deployments }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/uffizzi_core/version.rb
CHANGED
data/lib/uffizzi_core.rb
CHANGED
@@ -61,6 +61,7 @@ module UffizziCore
|
|
61
61
|
users_roles: :uffizzi_core_users_roles,
|
62
62
|
host_volume_files: :uffizzi_core_host_volume_files,
|
63
63
|
container_host_volume_files: :uffizzi_core_container_host_volume_files,
|
64
|
+
deployment_events: :uffizzi_core_deployment_events,
|
64
65
|
}
|
65
66
|
mattr_accessor :user_creation_sources, default: [:system, :online_registration, :google, :sso]
|
66
67
|
mattr_accessor :user_project_roles, default: [:admin, :developer, :viewer]
|
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: 2.2.
|
4
|
+
version: 2.2.3
|
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: 2023-07-
|
12
|
+
date: 2023-07-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aasm
|
@@ -847,6 +847,7 @@ files:
|
|
847
847
|
- app/lib/uffizzi_core/concerns/models/coupon.rb
|
848
848
|
- app/lib/uffizzi_core/concerns/models/credential.rb
|
849
849
|
- app/lib/uffizzi_core/concerns/models/deployment.rb
|
850
|
+
- app/lib/uffizzi_core/concerns/models/deployment_event.rb
|
850
851
|
- app/lib/uffizzi_core/concerns/models/event.rb
|
851
852
|
- app/lib/uffizzi_core/concerns/models/host_volume_file.rb
|
852
853
|
- app/lib/uffizzi_core/concerns/models/membership.rb
|
@@ -890,6 +891,7 @@ files:
|
|
890
891
|
- app/models/uffizzi_core/database.rb
|
891
892
|
- app/models/uffizzi_core/database_offering.rb
|
892
893
|
- app/models/uffizzi_core/deployment.rb
|
894
|
+
- app/models/uffizzi_core/deployment_event.rb
|
893
895
|
- app/models/uffizzi_core/event.rb
|
894
896
|
- app/models/uffizzi_core/host_volume_file.rb
|
895
897
|
- app/models/uffizzi_core/membership.rb
|
@@ -1059,6 +1061,7 @@ files:
|
|
1059
1061
|
- db/migrate/20230111000000_add_state_to_memberships.rb
|
1060
1062
|
- db/migrate/20230306142513_add_last_deploy_at_to_deployments.rb
|
1061
1063
|
- db/migrate/20230406154451_add_full_image_name_to_container.rb
|
1064
|
+
- db/migrate/20230531135739_create_deployment_events.rb
|
1062
1065
|
- db/migrate/20230613101901_create_clusters.rb
|
1063
1066
|
- db/seeds.rb
|
1064
1067
|
- lib/tasks/uffizzi_core_tasks.rake
|