gitRepos Gitjob • Communicates with a Git repository • Pull model (No.1) GitRepos • A Git repository monitored by Fleet • Can specify a branch and a specific folder within a repo
• The collection of resources to be deployed to a cluster • YAML, Helm, Kustomize • Core unit of deployment • Automatically created by Fleet based on the configured GitRepo • Convert to Helm charts by Agent BundleDeployment • The Bundle generated for a specific cluster • Instance of Bundle which includes cluster- specific customisations
Cluster Groups Clusters • A Rancher-managed k8s cluster • Labels can be assigned, such as “environment”, “region”, etc Cluster Groups • Simplifies managing a large number of clusters • Cluster groups are defined based on labels
• One per cluster • Deploys bundles as Helm charts • Watch the status of resources(BundleDeployment) • Pull model (No 2.) • Not required to be running • Can run only during scheduled window
works - Manager GitJobs • Detects new commit from Git Manager • Run fleet apply from Git source • Generate a bundle resource and save in k8s • Run as a k8s Job Manager • Create BundleDeployments, 1 per target cluster
works - Agent Agent • Watches BundleDeployment in cluster dedicated namespace Agent • Download content from Fleet manager • Generate helm chart • Run helm Agent • Update BundleDeployment status Agent • Live monitors resources • Helm installation manifest is desired state • Update BundleDeployment status when things change