Bundle Lifecycle
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.
- The
gitjob-controller
will sync changes from the GitRepo and detect changes from the polling or webhook event. With every commit change, thegitjob-controller
will create a job that clones the git repository, reads content from the repo such asfleet.yaml
and other manifests, and creates the Fleet bundle.
Note: The job pod with the image name
rancher/tekton-utils
will be under the same namespace as the GitRepo.
- The
fleet-controller
then syncs changes from the bundle. According to the targets, thefleet-controller
will createBundleDeployment
resources, which are a combination of a bundle and a target cluster. - The
fleet-agent
will then pull theBundleDeployment
from the Fleet controlplane. The agent deploys bundle manifests as a Helm chart from theBundleDeployment
into the downstream clusters. - The
fleet-agent
will 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.