A bundle is an internal resource used for the orchestration of resources from git. When a GitRepo is scanned it will produce one or more bundles.
To demonstrate the life cycle of a Fleet bundle, we will use multi-cluster/helm as a case study.
- User will create a GitRepo that points to the multi-cluster/helm repository.
gitjob-controllerwill sync changes from the GitRepo and detect changes from the polling or webhook event. With every commit change, the
gitjob-controllerwill create a job that clones the git repository, reads content from the repo such as
fleet.yamland other manifests, and creates the Fleet bundle.
Note: The job pod with the image name
rancher/tekton-utilswill be under the same namespace as the GitRepo.
fleet-controllerthen syncs changes from the bundle. According to the targets, the
BundleDeploymentresources, which are a combination of a bundle and a target cluster.
fleet-agentwill then pull the
BundleDeploymentfrom the Fleet controlplane. The agent deploys bundle manifests as a Helm chart from the
BundleDeploymentinto the downstream clusters.
fleet-agentwill continue to monitor the application bundle and report statuses back in the following order: bundledeployment > bundle > GitRepo > cluster.
This diagram shows the different rendering stages a bundle goes through until deployment.