Skip to content

Commit b71565a

Browse files
committed
Don't predeploy all CRs
1 parent 2d9e34f commit b71565a

2 files changed

Lines changed: 26 additions & 21 deletions

File tree

lib/krane/deploy_task.rb

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -57,24 +57,30 @@ class DeployTask
5757
)
5858

5959
def predeploy_sequence
60-
default_group = { groups: nil }
61-
before_crs = {
62-
'ResourceQuota' => default_group,
63-
'NetworkPolicy' => { groups: %w(extensions networking.k8s.io) },
64-
'ConfigMap' => default_group,
65-
'PersistentVolumeClaim' => default_group,
66-
'ServiceAccount' => default_group,
67-
'Role' => default_group,
68-
'RoleBinding' => default_group,
69-
'Secret' => default_group,
70-
}
71-
72-
after_crs = { 'Pod' => default_group }
73-
74-
crs = cluster_resource_discoverer.crds.select(&:predeployed?).map { |cr| [cr.kind, { groups: [cr.group] }] }.to_h
75-
predeploy_hash = before_crs
76-
predeploy_hash.merge!(crs) { |_k, old, new| { groups: old[:groups] + new[:groups] } }
77-
predeploy_hash.merge(after_crs) { |_k, old, new| { groups: old[:groups] + new[:groups] } }
60+
default_group = { skip_groups: [] }
61+
before_crs = %w(
62+
ResourceQuota
63+
NetworkPolicy
64+
ConfigMap
65+
PersistentVolumeClaim
66+
ServiceAccount
67+
Role
68+
RoleBinding
69+
Secret
70+
).map { |r| [r, default_group] }
71+
72+
after_crs = %w(
73+
Pod
74+
).map { |r| [r, default_group] }
75+
76+
crs = cluster_resource_discoverer.crds.select(&:predeployed?).map { |cr| [cr.kind, default_group] }
77+
predeploy_hash = Hash[before_crs + crs + after_crs]
78+
79+
cluster_resource_discoverer.crds.reject(&:predeployed?).each do |cr|
80+
predeploy_hash[cr.kind][:skip_groups] << cr.group if predeploy_hash[cr.kind]
81+
end
82+
83+
predeploy_hash
7884
end
7985

8086
def prune_whitelist
@@ -216,7 +222,7 @@ def ejson_provisioners
216222
def deploy_has_priority_resources?(resources)
217223
resources.any? do |r|
218224
next unless (pr = predeploy_sequence[r.type])
219-
!pr[:groups] || pr[:groups].include?(r.group)
225+
!pr[:skip_groups].include?(r.group)
220226
end
221227
end
222228

lib/krane/resource_deployer.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ def predeploy_priority_resources(resource_list, predeploy_sequence)
4848

4949
predeploy_sequence.each do |resource_type, attributes|
5050
matching_resources = resource_list.select do |r|
51-
r.type == resource_type &&
52-
(!attributes[:group] || r.group == attributes[:group])
51+
r.type == resource_type && !attributes[:skip_groups].include?(r.group)
5352
end
5453
StatsD.client.gauge('priority_resources.count', matching_resources.size, tags: statsd_tags)
5554

0 commit comments

Comments
 (0)