Skip to content

Commit

Permalink
Convert selector to hash before reverse merging
Browse files Browse the repository at this point in the history
Fixes "undefined method `merge` for KubernetesDeploy::LabelSelector"
  • Loading branch information
ramontayag committed May 25, 2019
1 parent 29b7096 commit 39959a2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion lib/kubernetes-deploy/ejson_secret_provisioner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def generate_secret_resource(secret_name, secret_type, data)
end

labels = { "name" => secret_name }
labels.reverse_merge!(@selector) if @selector
labels.reverse_merge!(@selector.to_h) if @selector

secret = {
'kind' => 'Secret',
Expand Down
15 changes: 13 additions & 2 deletions test/unit/kubernetes-deploy/ejson_secret_provisioner_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,16 @@ def test_proactively_validates_resulting_resources_and_raises_without_logging
refute_logs_match("Secret")
end

def test_run_with_selector_does_not_raise_exception
stub_ejson_keys_get_request
stub_dry_run_validation_request.times(3) # there are three secrets in the ejson
provisioner = build_provisioner(
fixture_path('ejson-cloud'),
selector: KubernetesDeploy::LabelSelector.new("app" => "yay")
)
refute_empty(provisioner.resources)
end

private

def stub_ejson_keys_get_request
Expand Down Expand Up @@ -162,14 +172,15 @@ def dummy_secret_hash(name: SecureRandom.hex(4), data: {}, ejson: true)
secret
end

def build_provisioner(dir = nil)
def build_provisioner(dir = nil, selector: nil)
dir ||= fixture_path('ejson-cloud')
KubernetesDeploy::EjsonSecretProvisioner.new(
namespace: 'test',
context: KubeclientHelper::TEST_CONTEXT,
template_dir: dir,
logger: logger,
statsd_tags: []
statsd_tags: [],
selector: selector,
)
end
end

0 comments on commit 39959a2

Please sign in to comment.