Expand ${...} image tags using availableVersions#58
Merged
Conversation
kubestash addon Function resources carry an image tag with a
${DB_VERSION}-style placeholder alongside an availableVersions list.
collectImages now expands the placeholder into one concrete image per
available version instead of emitting the templated string (which was
silently dropped by the ${ filter in ListImages/GroupImages).
Signed-off-by: Arnob Kumar Saha <arnob@appscode.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
kubestash addon
Functionresources (rendered by thekubedb-kubestash-catalogchart) carry an image whose tag has a${DB_VERSION}-style placeholder alongside a siblingavailableVersionslist:lib.collectImagesstored the raw templated string, andListImages/GroupImagesdrop anything containing${. As a result these plugin images silently never made it intoimagelist.yaml.Change
collectImagesnow runs eachimagevalue throughexpandVersionedImage, which substitutes a${...}placeholder with every entry in the object'savailableVersionslist, emitting one concrete image per version.availableVersions→ returned unchanged, so the existing${filter still drops any genuinely unresolvable templated image (no regression).For the example above,
listnow emits:ace_up.go's separatecollectImagesis left untouched — that flow only readsPostgresVersion/RedisVersionfrom the kubedb-catalog chart, never these kubestashFunctionresources.Test
Added
pkg/lib/image_test.gocovering the Function shape and the helper's edge cases.go build ./...and the new tests pass.