Skip to content

UDS Core 0.60

UDS Core 0.60 changes the default Istio service mesh mode to ambient for all Package CRs. Packages without an explicit spec.network.serviceMesh.mode setting will automatically switch from sidecar to ambient mode on upgrade. This release also reorganizes SSO secret fields, enables Keycloak logout confirmation by default, and aligns Istio and Authservice with the cluster-wide trust bundle.

ChangeImpactAction required
Default Istio mesh mode changed to ambientPackages without explicit spec.network.serviceMesh.mode switch from sidecar to ambient on upgradeSet mode: sidecar on any Package CR that must remain in sidecar mode
  • Exemption deployment for pre-core workloads: deploy Exemption CRs before UDS Core for infrastructure that needs policy exceptions during bootstrap (#2277)
  • Istio gateway nodeport configuration: configure Istio gateways with nodeport settings for environments that require them (#2277)
  • Keycloak logout confirmation: all SSO clients now show a logout confirmation prompt by default (#2260)
  • Trust bundle alignment: Istio and Authservice use the common cluster trust bundle, aligning with central CA configuration (#2281)
PackagePreviousUpdated
Istio1.28.11.28.3
Keycloak26.5.026.5.1
UDS Identity Config0.22.00.23.0
Prometheus3.8.13.9.1
Alertmanager0.30.00.30.1
Velero1.17.11.17.2
Velero plugins1.13.11.13.2
kube-prometheus-stack Helm chart80.10.081.2.2
prometheus-operator-crds Helm chart25.0.126.0.0
Velero Helm chart11.1.111.3.2

Packages with an unset spec.network.serviceMesh.mode that request Authservice protection encounter two issues:

  • Routing failure (v0.60.0): the operator does not correctly handle ambient mode routing for Authservice-protected workloads, leaving them unprotected. Fixed in v0.60.1 via #2326.
  • Stale AuthorizationPolicies (v0.60.0, v0.60.1): after upgrading, stale AuthorizationPolicies from the previous sidecar configuration can block access to Authservice-enabled applications. Fixed in v0.60.2 via #2368.

Set the mesh mode explicitly as a workaround if you cannot upgrade to v0.60.2 immediately:

package-cr.yaml
spec:
network:
serviceMesh:
# Set explicitly to avoid known issues with unset mesh mode
mode: ambient
  1. Audit Package CRs for mesh mode

    Identify all Package CRs that do not set spec.network.serviceMesh.mode explicitly. These will switch to ambient mode on upgrade:

    Terminal window
    uds zarf tools kubectl get packages -A -o jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name}{"\t"}{.spec.network.serviceMesh.mode}{"\n"}{end}'

    Packages with a blank value in the second column have no explicit mesh mode set. Decide for each whether ambient mode is acceptable or whether you need to pin it to sidecar.

  2. Set explicit mesh mode on Package CRs

    For any Package that must remain in sidecar mode, set the mode explicitly:

    package-cr.yaml
    spec:
    network:
    serviceMesh:
    # Pin to sidecar mode to prevent automatic switch to ambient
    mode: sidecar
  3. Update SSO secret field names

    Update any spec.sso configurations in your Package CRs to use the new field names. Review the release notes for the specific field mapping.

  4. Target v0.60.2

    uds-bundle.yaml
    packages:
    - name: core
    repository: registry.defenseunicorns.com/public/core
    # Upgrade to 0.60.2 (includes fixes for ambient mode and stale authpolicies)
    ref: 0.60.2-upstream

This release upgrades UDS Identity Config to 0.23.0.

  • Keycloak logout confirmation: enable logout confirmation on the account, account-console, and security-admin-console clients (Keycloak 26.5.0 feature)

Existing realms require manual client updates to enable logout confirmation. If you cannot perform a full realm re-import, follow these steps in the Keycloak admin console:

  1. Enable logout confirmation on default clients

    • Navigate to the UDS realm
    • Go to Clients > account
    • Find the Logout confirmation option and set it to On
    • Click Save
    • Repeat these steps for the account-console and security-admin-console clients
  1. Confirm Istio mesh mode

    Verify that workloads are running in the expected mesh mode:

    Terminal window
    uds zarf tools kubectl get packages -A -o jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name}: {.spec.network.serviceMesh.mode}{"\n"}{end}'
  2. Validate SSO and logout

    Confirm SSO login works and the new logout confirmation prompt appears.