chore(chart): appVersion 0.3.0, chart 0.3.6 + retire the licence public-key value - #21
Merged
Conversation
…ic-key value (#57)
Fifth repo in the 0.3.0 train. The chart depends on arrow, not jdbc, so it can
land while the jdbc release finishes.
Chart.yaml version 0.3.5 -> 0.3.6
Chart.yaml appVersion 0.2.5 -> 0.3.0
workflow IMAGE_TAG 0.2.5 -> 0.3.0
7 golden renders regenerated
IMAGE_TAG is the surface whose own comment records it going stale on the 0.2.2
train and again on 0.2.4. Moved here in the same commit as appVersion.
All five images verified published on DockerHub at 0.3.0 before appVersion moved
-- the federation image and all four softclient4es{6,7,8,9}-arrow-flight-sql
sidecars -- because a Chart.yaml pointing at a tag that does not exist breaks
every install.
BREAKING, and the reason this is more than a version bump: extensions 0.3.0
embeds the licence trust root, so SOFTCLIENT4ES_LICENSE_PUBLIC_KEY is no longer
consulted. The chart set that variable from license.publicKeySecretName, and the
docs recommended it as THE remedy for "Unknown key ID". Left alone, the chart
would have kept advertising a knob that silently does nothing.
The env block is gone and the value now ABORTS the render with an actionable
message, rather than being deleted: Helm ignores unknown --set keys, so removing
the key outright would have been just as silent as leaving it. A value that used
to decide HOW a licence is verified has to fail loudly.
Who is affected: nobody holding a licence issued by the SoftClient4ES licence
server -- that verifies against the embedded root with no configuration,
air-gapped included, so the value was always redundant for them. Only a
non-production-signed JWT breaks, and those operators now find out at
"helm upgrade" instead of via CrashLoopBackOff.
CI: SC4ES_TEST_PUBLIC_KEY is gone (6 references). Note that two of them were
"--set license.publicKeySecretName=sc4es-license", which the new guard would
have aborted -- the Pro-tier install and upgrade jobs would have failed had the
workflow not moved with the chart. The Pro gate now needs one secret, and
SC4ES_PRO_TEST_JWT must hold a licence-server-issued JWT.
New CI gate asserts the guard fires AND that the abort still names the value (an
abort whose text drifted generic leaves an operator with nothing to act on), plus
that no committed values file renders the variable.
Verified: helm lint clean; all 7 goldens match a fresh render; the golden diff is
label/tag/checksum only, no structural change; zero kind:Secret preserved;
three-region and heterogeneous-ready still byte-identical; kubeconform 3/3 valid;
the guard aborts with the right message; the normal Pro path (license.secretName
alone) still renders and still injects SOFTCLIENT4ES_LICENSE_KEY; workflow YAML
parses.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.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.
Fifth repo in the 0.3.0 train. The chart depends on arrow, not jdbc, so it can land while the jdbc release finishes.
Chart.yamlversion0.3.50.3.6Chart.yamlappVersion0.2.50.3.0IMAGE_TAG0.2.50.3.0IMAGE_TAGis the surface whose own comment records it going stale on the 0.2.2 train and again on 0.2.4. It moves here in the same commit asappVersion.All five images were verified published on DockerHub at
0.3.0beforeappVersionmoved — the federation image and all foursoftclient4es{6,7,8,9}-arrow-flight-sqlsidecars — because aChart.yamlpointing at a tag that does not exist breaks every install.extensions
0.3.0embeds the licence trust root, soSOFTCLIENT4ES_LICENSE_PUBLIC_KEYis no longer consulted.This chart set that variable, from
license.publicKeySecretName— and the docs recommended it as the remedy forInvalidLicense: Unknown key ID. Left alone, the chart would have gone on advertising a knob that silently does nothing, in a troubleshooting table, as the fix.The value now aborts the render rather than being deleted:
Deleting the key would have been just as silent as leaving it — Helm ignores unknown
--setkeys. A value that used to decide how a licence is verified has to fail loudly.Who is actually affected: nobody holding a licence issued by the SoftClient4ES licence server. That verifies against the embedded root with no configuration at all, air-gapped included — the value was always redundant for them. Only a non-production-signed JWT breaks, and those operators now find out at
helm upgradeinstead of viaCrashLoopBackOff.CI
SC4ES_TEST_PUBLIC_KEYis gone — 6 references. Two of them were--set license.publicKeySecretName=sc4es-license, which the new guard would have aborted: the Pro-tier install and upgrade jobs would have failed outright had the workflow not moved together with the chart.The Pro gate now needs one secret instead of two.⚠️
SC4ES_PRO_TEST_JWTmust now hold a licence-server-issued JWT — a self-signed test JWT can no longer be made to verify by supplying its public key. If the current secret is self-signed, the Pro-tier jobs will skip/fail until it is re-minted.A new static gate asserts the guard fires, that the abort still names the value (an abort whose text drifted generic leaves an operator with nothing to act on), and that no committed values file renders the variable.
Docs updated
README.md(values table, offline-verification callout, CI secrets, troubleshooting row),docs/operator-guide.md(config table, offline-verification callout),examples/three-region/README.md, and thevalues.yamlcomments.Verification
helm lintclean; all 7 goldens match a fresh render.""default, so its removal is invisible in the renders).kind: Secretcount still 0 (16.3 contract).three-regionandheterogeneous-readystill byte-identical (16.4 A2b).kubeconform -strict: 3/3 valid.license.secretNamealone) still renders and still injectsSOFTCLIENT4ES_LICENSE_KEY.static-checksgoes 8 → 9 steps.Refs #57.