Skip to content

docs: add the AKS workload-identity design - #63

Draft
ashish1099 wants to merge 1 commit into
mainfrom
docs/aks-workload-identity
Draft

docs: add the AKS workload-identity design#63
ashish1099 wants to merge 1 commit into
mainfrom
docs/aks-workload-identity

Conversation

@ashish1099

Copy link
Copy Markdown
Member

Design doc only — no code. Proposes secretless Azure access on AKS clusters:

  • Reuse + parameterize the existing Crossplane workload-identity-infrastructure composition with an issuerURL input: AKS passes the managed issuer (AzureManagedControlPlane.status.oidcIssuerProfile.issuerURL, enabled since #171's chart work) and skips the storage-account issuer-hosting resources; self-managed behavior unchanged. One declarative owner for Azure IAM across both flavours.
  • Webhook via AKS's managed add-on (securityProfile.workloadIdentity.enabled) — the azure-workload-identity-webhook chart never deploys on AKS.
  • Day-2, in-cluster, post-pivot: bootstrap keeps the ServicePrincipal secret; the self-managed chicken-and-egg (issuer needed before CAPZ can authenticate) doesn't exist on AKS, so Crossplane runs on the provisioned cluster.
  • Consumer order: Velero UAMI + federated credential first (lifts the DR-rejected-for-AKS validation), then the chart's AzureClusterIdentity flips ServicePrincipalWorkloadIdentity — strictly gated on the federated credentials existing — and the client secret rotates out.

Open items called out: exact CAPZ/ASO ServiceAccount subjects, Velero role scope narrowing, and how the capi UAMI clientID reaches the chart values.

Secretless Azure access on AKS via the managed OIDC issuer : the
existing Crossplane workload-identity composition is parameterized with
an issuerURL input (skipping the storage-account issuer hosting), the
webhook comes from AKS's securityProfile.workloadIdentity add-on, and
everything runs day-2 in-cluster post-pivot — the self-managed
chicken-and-egg doesn't exist on AKS. Consumers migrate in order :
Velero (unblocks DR on AKS), then CAPZ's AzureClusterIdentity flips
ServicePrincipal → WorkloadIdentity and the client secret rotates out.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant