uffizzi_core 2.2.4 → 2.2.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9a737645810c1744fe73cfbfb2e0d249d0895d75105065dcec75e7f4dea0844
4
- data.tar.gz: a303130b01e8538a78dd5d891c2d8b9a51224c50d25b0ef5cdb830a7de55de2d
3
+ metadata.gz: 6a34bc3da603108f8c6b1638f14d4e5025f3cc255062fff2f32fb849a6eb7206
4
+ data.tar.gz: 510bc658ead7b29c8bfe04e980fd47f6b4a5c5121d33048d7042a49a41d9d70f
5
5
  SHA512:
6
- metadata.gz: '043837408678dd986b192992cd149f9ca67c1490b7cc07a49cbbc464302fb717ca27ddbcd1819093e92ea7cc7c095930e349caed34bed2593dac4fc01e00c41f'
7
- data.tar.gz: 62e606f4b9e4ef2ccbcdb0f7f73a6acf91970e1697a00f87a03675ce63fc18f84c835e165e45ab47a7b5797db9b278e83654de02e381631832d37e98c6d6de37
6
+ metadata.gz: 5a17109e4ace94f959f562d6b60be739faf9b07ef9b7712ac6f09bb005f060b0a1fc9e9acc37dec369540ae394c2aa53a934ab6084fcf1474349cc0ab02226d3
7
+ data.tar.gz: 83882b00eadefad47f00ef89aab8e07be1e15e8e4193b06b1608c0b92c7e0562677c0b2ca7ef8c5fb5fee76bd770465f7353fed35bb044cdb5f2e7620fbd5a4f
@@ -55,6 +55,24 @@ module UffizziCore::DependencyInjectionConcern
55
55
  module_class(:domain_module)
56
56
  end
57
57
 
58
+ def deployment_memory_module
59
+ return unless module_exists?(:deployment_memory_module)
60
+
61
+ module_class(:deployment_memory_module)
62
+ end
63
+
64
+ def template_memory_module
65
+ return unless module_exists?(:template_memory_module)
66
+
67
+ module_class(:template_memory_module)
68
+ end
69
+
70
+ def controller_settings_service
71
+ return unless module_exists?(:controller_settings)
72
+
73
+ module_class(:controller_settings)
74
+ end
75
+
58
76
  private
59
77
 
60
78
  def module_exists?(module_name)
@@ -55,8 +55,6 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
55
55
 
56
56
  validate :check_all_containers_have_unique_ports
57
57
  validate :check_exists_ingress_container
58
- validate :check_max_memory_limit
59
- validate :check_max_memory_request
60
58
  validate :check_secrets_exist_in_database
61
59
 
62
60
  def assign_dependences!(project, user)
@@ -87,18 +85,6 @@ class UffizziCore::Api::Cli::V1::Deployment::CreateForm < UffizziCore::Deploymen
87
85
  errors.add(:containers, :incorrect_ingress_container) unless UffizziCore::DeploymentService.ingress_container?(active_containers)
88
86
  end
89
87
 
90
- def check_max_memory_limit
91
- return if UffizziCore::DeploymentService.valid_containers_memory_limit?(self)
92
-
93
- errors.add(:containers, :max_memory_limit_error, max: project.account.container_memory_limit)
94
- end
95
-
96
- def check_max_memory_request
97
- return if UffizziCore::DeploymentService.valid_containers_memory_request?(self)
98
-
99
- errors.add(:containers, :max_memory_request_error, max: project.account.container_memory_limit)
100
- end
101
-
102
88
  def check_secrets_exist_in_database
103
89
  return if compose_file.nil?
104
90
 
@@ -54,8 +54,6 @@ class UffizziCore::Api::Cli::V1::Deployment::UpdateForm < UffizziCore::Deploymen
54
54
 
55
55
  validate :check_all_containers_have_unique_ports
56
56
  validate :check_exists_ingress_container
57
- validate :check_max_memory_limit
58
- validate :check_max_memory_request
59
57
 
60
58
  def assign_dependences!(project, user)
61
59
  self.project = project
@@ -84,16 +82,4 @@ class UffizziCore::Api::Cli::V1::Deployment::UpdateForm < UffizziCore::Deploymen
84
82
 
85
83
  errors.add(:containers, :incorrect_ingress_container) unless UffizziCore::DeploymentService.ingress_container?(active_containers)
86
84
  end
87
-
88
- def check_max_memory_limit
89
- return if UffizziCore::DeploymentService.valid_containers_memory_limit?(self)
90
-
91
- errors.add(:containers, :max_memory_limit_error, max: project.account.container_memory_limit)
92
- end
93
-
94
- def check_max_memory_request
95
- return if UffizziCore::DeploymentService.valid_containers_memory_request?(self)
96
-
97
- errors.add(:containers, :max_memory_request_error, max: project.account.container_memory_limit)
98
- end
99
85
  end
@@ -1,20 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class UffizziCore::Api::Cli::V1::Template::CreateForm < UffizziCore::Template
4
- validate :check_max_memory_limit
5
- validate :check_max_memory_request
6
-
7
- private
8
-
9
- def check_max_memory_limit
10
- return if valid_containers_memory_limit?
11
-
12
- errors.add(:payload, :max_memory_limit_error, max: project.account.container_memory_limit)
13
- end
14
-
15
- def check_max_memory_request
16
- return if valid_containers_memory_request?
17
-
18
- errors.add(:payload, :max_memory_request_error, max: project.account.container_memory_limit)
19
- end
20
4
  end
@@ -41,7 +41,7 @@ module UffizziCore::Concerns::Models::Cluster
41
41
  end
42
42
 
43
43
  event :disable, after: :after_disable do
44
- transitions from: [:failed_deploy_namespace, :deploying, :deployed, :failed], to: :disabled
44
+ transitions from: [:deploying_namespace, :failed_deploy_namespace, :deploying, :deployed, :failed], to: :disabled
45
45
  end
46
46
  end
47
47
 
@@ -18,21 +18,5 @@ module UffizziCore::Concerns::Models::Template
18
18
  enumerize :creation_source, in: [:manual, :compose_file, :system], predicates: true, scope: true
19
19
 
20
20
  validates :name, presence: true
21
-
22
- def valid_containers_memory_limit?
23
- containers_attributes = payload['containers_attributes']
24
- container_memory_limit = project.account.container_memory_limit
25
- return true if container_memory_limit.nil?
26
-
27
- containers_attributes.all? { |container| container['memory_limit'].to_i <= container_memory_limit }
28
- end
29
-
30
- def valid_containers_memory_request?
31
- containers_attributes = payload['containers_attributes']
32
- container_memory_limit = project.account.container_memory_limit
33
- return true if container_memory_limit.nil?
34
-
35
- containers_attributes.all? { |container| container['memory_request'].to_i <= container_memory_limit }
36
- end
37
21
  end
38
22
  end
@@ -21,4 +21,14 @@
21
21
 
22
22
  class UffizziCore::Deployment < UffizziCore::ApplicationRecord
23
23
  include UffizziCore::Concerns::Models::Deployment
24
+ include UffizziCore::DependencyInjectionConcern
25
+
26
+ validate :check_max_memory_limit
27
+
28
+ def check_max_memory_limit
29
+ return if deployment_memory_module.valid_memory_limit?(self)
30
+
31
+ deployment_memory_module.memory_limit_error_message(self)
32
+ errors.add(:containers, message)
33
+ end
24
34
  end
@@ -2,4 +2,14 @@
2
2
 
3
3
  class UffizziCore::Template < UffizziCore::ApplicationRecord
4
4
  include UffizziCore::Concerns::Models::Template
5
+ include UffizziCore::DependencyInjectionConcern
6
+
7
+ validate :check_max_memory_limit
8
+
9
+ def check_max_memory_limit
10
+ return if template_memory_module.valid_memory_limit?(self)
11
+
12
+ message = template_memory_module.memory_limit_error_message(self)
13
+ errors.add(:payload, message)
14
+ end
5
15
  end
@@ -3,5 +3,5 @@
3
3
  class UffizziCore::Api::Cli::V1::Projects::ClusterSerializer < UffizziCore::BaseSerializer
4
4
  type :cluster
5
5
 
6
- attributes :name, :state, :kubeconfig
6
+ attributes :name, :state, :kubeconfig, :created_at, :host
7
7
  end
@@ -33,6 +33,7 @@ class UffizziCore::ClusterService
33
33
  if deployed_cluster.status.ready && deployed_cluster.status.kube_config.present?
34
34
  cluster.finish_deploy
35
35
  cluster.kubeconfig = deployed_cluster.status.kube_config
36
+ cluster.host = deployed_cluster.status.host
36
37
  cluster.save!
37
38
 
38
39
  return
@@ -23,22 +23,6 @@ class UffizziCore::ContainerService
23
23
  container.aasm(:continuously_deploy).current_state == UffizziCore::Container::STATE_CD_ENABLED
24
24
  end
25
25
 
26
- def valid_memory_limit?(container)
27
- max_memory_limit = container.deployment.project.account.container_memory_limit
28
- container_memory_limit = container.memory_limit
29
- return true if max_memory_limit.nil? || container_memory_limit.nil?
30
-
31
- container_memory_limit <= max_memory_limit
32
- end
33
-
34
- def valid_memory_request?(container)
35
- max_memory_limit = container.deployment.project.account.container_memory_limit
36
- container_memory_request = container.memory_request
37
- return true if max_memory_limit.nil? || container_memory_request.nil?
38
-
39
- container_memory_request <= max_memory_limit
40
- end
41
-
42
26
  def last_state(container)
43
27
  pods = pods_by_container(container)
44
28
  container_status = container_status(container, pods)
@@ -109,7 +109,7 @@ class UffizziCore::ControllerService
109
109
  when UffizziCore::Deployment
110
110
  Settings.controller
111
111
  when UffizziCore::Cluster
112
- Settings.vcluster_controller
112
+ controller_settings_service.vcluster(deployable)
113
113
  else
114
114
  raise StandardError, "Deployable #{deployable.class.name} undefined"
115
115
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::ControllerSettingsService
4
+ class << self
5
+ def vcluster(_cluster)
6
+ Settings.vcluster_controller
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Deployment::MemoryService
4
+ class << self
5
+ def valid_memory_limit?(_deployment)
6
+ true
7
+ end
8
+
9
+ def memory_limit_error_message(_deployment); end
10
+ end
11
+ end
@@ -101,22 +101,6 @@ class UffizziCore::DeploymentService
101
101
  containers.empty? || ports.size == ports.uniq.size
102
102
  end
103
103
 
104
- def valid_containers_memory_limit?(deployment)
105
- containers = deployment.containers
106
- container_memory_limit = deployment.project.account.container_memory_limit
107
- return true if container_memory_limit.nil?
108
-
109
- containers.all? { |container| container.memory_limit <= container_memory_limit }
110
- end
111
-
112
- def valid_containers_memory_request?(deployment)
113
- containers = deployment.containers
114
- container_memory_limit = deployment.project.account.container_memory_limit
115
- return true if container_memory_limit.nil?
116
-
117
- containers.all? { |container| container.memory_request <= container_memory_limit }
118
- end
119
-
120
104
  def ingress_container?(containers)
121
105
  containers.empty? || containers.map(&:receive_incoming_requests).count(true) == 1
122
106
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ class UffizziCore::Template::MemoryService
4
+ class << self
5
+ def valid_memory_limit?(_template)
6
+ true
7
+ end
8
+
9
+ def memory_limit_error_message(_template); end
10
+ end
11
+ end
@@ -19,8 +19,7 @@ en:
19
19
  uffizzi_core/deployment:
20
20
  attributes:
21
21
  containers:
22
- max_memory_limit_error: "Memory limit of containers must be less than %{max}"
23
- max_memory_request_error: "Memory request of containers must be less than %{max}"
22
+ max_memory_limit_error: "Total memory limit of containers must be less than %{max}"
24
23
  uffizzi_core/user:
25
24
  attributes:
26
25
  email:
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddHostToClusters < ActiveRecord::Migration[6.1]
4
+ def change
5
+ add_column(:uffizzi_core_clusters, :host, :string)
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module UffizziCore
4
- VERSION = '2.2.4'
4
+ VERSION = '2.2.5'
5
5
  end
data/lib/uffizzi_core.rb CHANGED
@@ -30,6 +30,9 @@ require 'faraday/follow_redirects'
30
30
  module UffizziCore
31
31
  mattr_accessor :dependencies, default: {
32
32
  rbac: 'UffizziCore::Rbac::UserAccessService',
33
+ deployment_memory_module: 'UffizziCore::Deployment::MemoryService',
34
+ template_memory_module: 'UffizziCore::Template::MemoryService',
35
+ controller_settings: 'UffizziCore::ControllerSettingsService',
33
36
  }
34
37
  mattr_accessor :table_names, default: {
35
38
  accounts: :uffizzi_core_accounts,
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
4
+ version: 2.2.5
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-17 00:00:00.000000000 Z
12
+ date: 2023-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
@@ -1023,13 +1023,16 @@ files:
1023
1023
  - app/services/uffizzi_core/container_registry_service.rb
1024
1024
  - app/services/uffizzi_core/container_service.rb
1025
1025
  - app/services/uffizzi_core/controller_service.rb
1026
+ - app/services/uffizzi_core/controller_settings_service.rb
1026
1027
  - app/services/uffizzi_core/deployment/domain_service.rb
1028
+ - app/services/uffizzi_core/deployment/memory_service.rb
1027
1029
  - app/services/uffizzi_core/deployment_service.rb
1028
1030
  - app/services/uffizzi_core/logs_service.rb
1029
1031
  - app/services/uffizzi_core/manage_activity_items_service.rb
1030
1032
  - app/services/uffizzi_core/project_service.rb
1031
1033
  - app/services/uffizzi_core/repo_service.rb
1032
1034
  - app/services/uffizzi_core/response_service.rb
1035
+ - app/services/uffizzi_core/template/memory_service.rb
1033
1036
  - app/services/uffizzi_core/token_service.rb
1034
1037
  - app/services/uffizzi_core/user_access_service.rb
1035
1038
  - app/services/uffizzi_core/user_generator_service.rb
@@ -1063,6 +1066,7 @@ files:
1063
1066
  - db/migrate/20230406154451_add_full_image_name_to_container.rb
1064
1067
  - db/migrate/20230531135739_create_deployment_events.rb
1065
1068
  - db/migrate/20230613101901_create_clusters.rb
1069
+ - db/migrate/20230711101901_add_host_to_clusters.rb
1066
1070
  - db/seeds.rb
1067
1071
  - lib/tasks/uffizzi_core_tasks.rake
1068
1072
  - lib/uffizzi_core.rb