Skip to content

Commit

Permalink
deploy initializers separately first even if they are part of the ini…
Browse files Browse the repository at this point in the history
…tially requested list of services
  • Loading branch information
gvalmon committed Feb 8, 2024
1 parent 556cd35 commit 8144e85
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 2 deletions.
3 changes: 2 additions & 1 deletion lib/kuber_kit/actions/service_deployer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,10 @@ def call(services:, tags:, skip_services: nil, skip_compile: false, skip_depende
initializers.map(&:to_sym).each_slice(configs.deploy_simultaneous_limit) do |batch_service_names|
deploy_simultaneously(batch_service_names, deployment_result)
end
service_names -= initializers
end

# Next, deploy all requested services.
# Next, deploy all requested services, except initializers.
service_names.each_slice(configs.deploy_simultaneous_limit) do |batch_service_names|
deploy_simultaneously(batch_service_names, deployment_result)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def get_all(item_names)
Contract Or[Symbol, ArrayOf[Symbol]] => Any
def get_all_deps(item_names)
deps = Array(item_names).map { |i| get_recursive_deps(i) }.flatten
deps.uniq - item_names
deps.uniq
end

def get_recursive_deps(item_name, dependency_tree: [])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,17 @@
result = subject.get_all_deps([:service4])
expect(result.sort).to eq([:service1, :service2_a, :service2_b, :service3_a, :service3_b])
end

it "returns dependencies even if they are part of the initially requested services" do
service_helper.store.define(:service1)
service_helper.store.define(:service2_a).initialize_with(:service1)
service_helper.store.define(:service2_b).initialize_with(:service1)
service_helper.store.define(:service3_a).initialize_with(:service2_a)
service_helper.store.define(:service3_b).initialize_with(:service2_b, :service1)
service_helper.store.define(:service4).initialize_with(:service1, :service3_a, :service3_b)

result = subject.get_all_deps([:service4, :service1])
expect(result.sort).to eq([:service1, :service2_a, :service2_b, :service3_a, :service3_b])
end
end
end

0 comments on commit 8144e85

Please sign in to comment.