feat: add image.flavor to select the Alpine or Debian image - #246
Open
layertwo wants to merge 1 commit into
Open
feat: add image.flavor to select the Alpine or Debian image#246layertwo wants to merge 1 commit into
layertwo wants to merge 1 commit into
Conversation
Upstream vaultwarden publishes an Alpine (musl) and a Debian (glibc) image for every release, but the flavor was baked into the image.tag default, so selecting the Debian image meant overriding the full tag and re-pinning the version by hand on every upgrade. Split the suffix out into image.flavor, which is appended to image.tag when set. Defaults are unchanged in effect: tag "1.37.2" plus flavor "alpine" renders docker.io/vaultwarden/server:1.37.2-alpine, exactly as before. Setting flavor to "" selects the Debian image, which is the safer choice on clusters where musl's resolver misbehaves with a large ndots search list. BREAKING: image.tag no longer carries the flavor suffix. Users who pin a full tag such as "1.37.1-alpine" must drop the suffix and set image.flavor instead, otherwise the suffix is applied twice. Signed-off-by: Lucas Messenger <1335960+layertwo@users.noreply.github.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.
What
Splits the image flavor suffix out of
image.taginto a newimage.flavorvalue, appended to the tag when set.Why
Upstream
dani-garcia/vaultwardenpublishes an Alpine (musl) and a Debian (glibc) image for every release, but the chart baked-alpineinto theimage.tagdefault. Selecting the Debian image therefore meant overriding the full tag and re-pinning the version by hand on every upgrade — the flavor choice and the version pin were coupled when they're independent concerns.The Debian image matters in practice: on clusters with a long DNS search list, musl's
getaddrinfo()doesn't reliably fall through to the absolute name for hostnames underndots, so outbound lookups (SSO/OIDC discovery, SMTP) fail from the Alpine image while the Debian one works. Today the only way to opt out is to hardcode a tag and remember to bump it.Effect on defaults
None.
tag: "1.37.2"+flavor: "alpine"rendersdocker.io/vaultwarden/server:1.37.2-alpine, byte-identical to 0.46.1.Verified with
helm template:docker.io/vaultwarden/server:1.37.2-alpineflavor: ""docker.io/vaultwarden/server:1.37.2tag: 1.36.0docker.io/vaultwarden/server:1.36.0-alpineresourceType: StatefulSetdocker.io/vaultwarden/server:1.37.2-alpineBreaking change
image.tagno longer carries the flavor suffix. Anyone pinning a full tag like1.37.1-alpinemust drop the suffix and setimage.flavor, or the suffix is applied twice. Chart version bumped0.46.1→0.47.0and the upgrade is noted in the README.Happy to invert this to a non-breaking form (default
flavor: "", leavetag: "1.37.2-alpine") if you'd rather not break existing pins — it costs the feature its usefulness from the shipped defaults, but it's a one-line change.Notes
image.registry/image.repositorydefaults are untouched.ci/test-values.yamlnow setsflavor: ""so the non-default path is install-tested at no extra CI cost../generate-readme.shif the formatting drifts.helm lintpasses.