fix(connectivity): the s3proxy façade on CAPZ authenticates with Workload Identity — JCLOUDS_CREDENTIAL set empty so the image default cannot fill it - #437
Merged
Conversation
…load Identity — JCLOUDS_CREDENTIAL set empty so the image default cannot fill it (#436)
Published Helm chart
|
| Chart | agent-platform-connectivity |
| Version | 4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cd |
| OCI reference | oci://gsoci.azurecr.io/charts/giantswarm/agent-platform-connectivity:4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cd |
| Digest | sha256:cbc88bd3e968d281d2adb598519b060b051c6bf5d6fc887ab21d6b2e67bcd6d2 |
| Registry | public — gsoci.azurecr.io |
| Git catalog | giantswarm-test-catalog (index) |
Pull this chart
helm pull oci://gsoci.azurecr.io/charts/giantswarm/agent-platform-connectivity --version 4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cdPosted by architect-orb · build 7257 · commit eb0a6cd · updated in place on every push
Published Helm chart
|
| Chart | agent-platform |
| Version | 4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cd |
| OCI reference | oci://gsoci.azurecr.io/charts/giantswarm/agent-platform:4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cd |
| Digest | sha256:2b0c59272988f5329beadcb14791cffeecac6e3edd854f877fa7ccfd9c4e54f3 |
| Registry | public — gsoci.azurecr.io |
| Git catalog | giantswarm-test-catalog (index) |
Pull this chart
helm pull oci://gsoci.azurecr.io/charts/giantswarm/agent-platform --version 4.10.4-dev.s3proxy-wi--credential.2026-09-13.22-47-01.heb0a6cdPosted by architect-orb · build 7258 · commit eb0a6cd · updated in place on every push
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.
Closes #436. Found on glean's cut-over to kagent API v2 (giantswarm/giantswarm#37744), the first CAPZ installation on the 4.x line.
Problem
With
kagent.harness.snapshotStore.crossplane.provider: capzthe connectivity chart leftJCLOUDS_CREDENTIALunset so that s3proxy would defer toDefaultAzureCredential. s3proxy 4.1.1 does that only while the credential is empty (AzureBlobStore: identity and credential both non-empty →AzureNamedKeyCredential, elseDefaultAzureCredentialBuilder), and the image carriesJCLOUDS_CREDENTIAL="remote-credential"as a DockerfileENVdefault that the entrypoint copies intojclouds.credentialverbatim. The façade therefore signed every request as the account with the literalremote-credentialas the shared key:on every
PUT …/snapshots/<id>/pages, and every golden boot crashed before its snapshot was taken (ActorTemplateRetrying: golden boot N of 6 failed (GoldenActorCrashed …)). The Workload Identity half itself was complete: webhook injection, the bridged ids, identity, federated credential and role assignment all Ready.Change
templates/substrate/s3proxy.yaml, thecapzbranch:JCLOUDS_CREDENTIAL: ""set explicitly next toAZURE_CLIENT_ID/AZURE_TENANT_ID, with the reason in the comment. The account-key branch is unchanged.make verify-substrate-store: the capz Deployment must carryJCLOUDS_CREDENTIALwithvalue: ""and nosecretKeyReffor it (the old assertion required the variable to be absent — the shape that fails); the façade-alone shape must read the key from the Secret.Verification
make verify-substrate-storepasses (all seven groups).JCLOUDS_CREDENTIAL=""the façade authenticated with Workload Identity and thesre-agentgolden snapshot landed ingiantswarm-glean-substrateon the next boot (template Ready 22:44:12Z after four crashed boots on the unpatched Deployment; no façade error since). That is the end-to-end proof of the Workload Identity path agentlab cannot run — its façade proof (agent-platform#423) exercises the account-key branch against Azurite, which this change does not touch.capzbranch of the façade's environment.