Only look up resource constants directly available under the Krane module #720
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What are you trying to accomplish with this PR?
I ran into an interesting issue today I thought warranted a PR. I'm using kubedb to launch a Redis instance in my k8s cluster. In addition, I have a constant defined in my project called
Redis
.The Redis kubedb resource looks something like this:
I tried to deploy using Krane and saw this in the list of discovered resources:
Hmm, that's surprising. What's that Redis URL doing in there? The deploy then failed with this error:
A little digging revealed this method in kubernetes_resource.rb:
Interestingly,
Krane.const_defined?('Redis')
returns true. The documentation forconst_defined?
says it will check for the constant in the module's ancestors (includingObject
) unless a secondfalse
parameter is passed.How is this accomplished?
Since I assume the intent was to look up constants under the
Krane
module directly, I added the secondfalse
param in this PR. Note thatconst_get
works the same way.What could go wrong?
Well, I suppose anyone who's relying on the old behavior, either implicitly or explicitly, is could experience a deploy failure. However in my opinion, this is a bug.