Fleet Management

  • Changed

    • Update to Zot v2.1.20.
    • Added more trimming to the calculated value for the helm.sh/chart label.
  • Added

    • gitops: generated repositories now record which version of the repository structure they were built with, in a .gitops-metadata.yaml file at the repository root. gitops init creates it and every gitops add ... records the layer it generated.
    • gitops check: new command reporting the parts of a GitOps repository that were generated with an older repository structure than the current kubectl-gs produces. It exits non-zero when anything is behind, so it can be used as a check in the repository’s own CI. Repositories created before this existed are brought in with gitops check --adopt. (#23540)

    Fixed

    • template cluster: releases without a published release-<provider> chart, such as a hand-crafted Release CR used for testing (e.g. 35.0.0-andreas), no longer produce an App CR pointing to a chart which does not exist. The cluster-<provider> chart is used instead, which resolves the Release CR in the management cluster. (#4347)
    • template cluster: --cluster-version is no longer ignored for CAPA, CAPZ and AKS. Setting it templates the given cluster-<provider> app version instead of the release-<provider> chart, which allows testing a provider chart build together with a release.
    • Commands that fail because you are not logged into a management cluster now print a hint telling you to run kubectl gs login, instead of only a raw client error such as dial tcp 127.0.0.1:8080: connect: connection refused or no matches for kind "AppCatalogEntry". The hint is added for every command, not just template cluster.
  • Fixed

    • krew archives now include the LICENSE file, so validate-krew-manifest accepts the gs plugin release.
  • Fixed

    • krew install of the gs plugin: releases again publish .tar.gz archives (kubectl-gs-<tag>-<os>-<arch>.tar.gz) for every platform and the krew manifest references them.
  • Added

    • login: new --api-endpoint flag enables a fully offline direct-OIDC workload cluster login. When set together with --oidc-issuer, --oidc-client-id and --api-ca-file, the login skips all management cluster access, so the user needs no RBAC on the management cluster.
    • template cluster: support --provider aks for templating AKS workload clusters via the cluster-aks / release-aks chart. Reuses --region, --azure-subscription-id, and --management-cluster for the required Azure inputs.
    • template cluster: new --azure-cluster-identity-name and --azure-cluster-identity-namespace flags for both capz and aks, setting global.providerSpecific.azureClusterIdentity. Omitted when unset so the chart’s built-in defaults apply.

    Changed

    • Release binaries now include darwin/amd64, darwin/arm64, windows/amd64, and windows/arm64 alongside the existing linux targets. Windows binaries are named kubectl-gs-windows-<arch>.exe.
    • krew manifest updated to reference bare binaries directly instead of tarballs, and extended with windows/arm64 support.
    • (CAPA): Derive the number of VPC chunks from --az-usage-limit. This enables small single-AZ VPC layouts (e.g. a /24 VPC with a /25 private subnet and a /26 public subnet).
  • Changed

    • Update to upstream Helm Chart v0.1.122 and Zot v2.1.18.
  • Changed

    • Update to upstream Helm Chart v0.1.117 and Zot v2.1.17.
  • Changed

    • Fix ABS config to not override AppVersion in Chart.yaml
  • Changed

    • Use Giant Swarm hosted app icon
  • Added

    • login: new --oidc-scope flag (repeatable, comma-separated) appends extra scopes to the direct workload-cluster OIDC request. Use --oidc-scope=groups with Okta to receive group memberships in the ID token when the workload cluster’s structured auth is configured with groupsClaim.