Ship a Change Through Fleet and a Git Server
Continuous delivery with Fleet is a contract: the cluster runs exactly what Git declares, and a commit is what triggers a rollout. In this challenge you run that loop end to end against a Git server you control.
The playground has a self-hosted Gitea server on its own machine (open the Gitea tab, user student, password student). It hosts a student/sample-app repository with manifests/web.yaml, an nginx Deployment set to one replica. You work from the dev-machine workstation.
Step 1: Point Fleet at the Gitea Repository
Create a GitRepo in the fleet-local namespace that points at the Gitea repo. Use the server's IP address 172.16.0.4:3000, not its hostname - Fleet clones from a cluster pod, and cluster DNS does not resolve the gitea machine name.
Hint 1 - the GitRepo
A GitRepo needs repo, branch, and paths. The repo is http://172.16.0.4:3000/student/sample-app, the branch is main, and the path is manifests. Create it in fleet-local so it targets the local cluster.
Step 2: Let Fleet Deploy the App
Fleet clones the repo, builds a bundle, and applies it. The web Deployment should appear.
Hint 2 - nothing deployed
Check kubectl -n fleet-local get gitrepo and get bundles. If the GitRepo shows no commit, the repo URL is likely wrong (must be the IP, not gitea). If the bundle stays NotReady, check the branch (main) and path (manifests).
Step 3: Commit a Change and Watch It Reconcile
Now the real loop. Clone the Gitea repository, change the replica count in manifests/web.yaml, commit, and push. Do not run kubectl scale - the change must come through Git. Fleet will reconcile it.
Hint 3 - push the change, do not scale by hand
Clone with git clone http://student:student@172.16.0.4:3000/student/sample-app.git, edit manifests/web.yaml to set replicas above 1, commit, and git push origin main. Fleet polls Gitea (about every 15 seconds) and reconciles the change. A kubectl scale would satisfy nothing here - the point is that the commit drives the rollout.