Fleet-Modell
Continuous Delivery über viele Cluster, mit Rancher gebündelt
(Fleet 0.16, cattle-fleet-system). Manager auf
local, Agents im Downstream, auch einer auf
local (Agent in cattle-fleet-local-system,
Cluster-Objekt local in
fleet-local).
GitRepo (fleet.cattle.io)
→ rendert Bundles →
BundleDeployment je Ziel-Cluster. Targeting per
clusterSelector/clusterGroup.
HelmOp (seit 2.12 per Default
aktiv) rollt Helm-Charts direkt aus einem Helm-/OCI-Repo aus, ohne
Git, mit SemVer-Constraint und Polling.
apiVersion: fleet.cattle.io/v1alpha1
kind: GitRepo
metadata: {name: platform, namespace: fleet-default}
spec:
repo: https://git.example.com/platform
branch: main
paths: [infra/, apps/]
targets:
- name: prod
clusterSelector:
matchLabels: {env: prod}
Targeting-Regeln
Labels auf dem Fleet-Cluster-Objekt treiben die
Auswahl. Ohne targets greift
clusterGroup: default. Ab Werk legt Fleet diese Gruppe
nur in fleet-local an (enthält local).
In fleet-default rollt ohne eigene Gruppe
default nichts aus. fleet.yaml im Repo
steuert Overlays, Helm-Values und dependsOn zwischen
Bundles.
Multi-Tenancy: GitRepoRestriction
ist abgekündigt, Ersatz ist Policy
(fleet.cattle.io). Git-Webhooks immer mit
webhookSecret: Fleet kündigt das Ende
unauthentifizierter Webhook-Aufrufe an, seit 2.15.2
(CVE-2026-93539) wirken Spec-Änderungen per Webhook nur noch
mit Secret.
Seit 2.15.3 (Fleet 0.16.3): Ein
Cluster, der ein kubeconfig-Secret aus einem anderen
Namespace nutzt, braucht am Secret das Label
fleet.cattle.io/kubeconfig-referenceable-from=<Cluster-Namespace>
(für seine eigenen Secrets setzt Rancher es selbst; Fix der
kritischen CVE-2026-94290). Agent-initiiert registrierte Cluster
bleiben an ihr Fleet-Registration-Token gebunden, ein Wechsel
braucht die Annotation fleet.cattle.io/registered-token
mit dem neuen Token-Namen (Fix von CVE-2026-104615).