Competence grid for part 4
Use this grid to judge whether you can build your platform from code and explain it. Read each row and solve the task next to it without looking anything up. If it comes easily, you have reached the goal. If not, the link in the last column takes you to the right place. Within the Swiss framework curriculum, part 4 mainly serves the competences B12.3 (target configurations), B12.4 (configuration management) and B14.1 (introducing software and releases). With the web shop it also prepares part 5.
| I can … | Task | Look up |
|---|---|---|
| tell declarative and imperative descriptions apart | Explain what a second run does with onetemplate instantiate and with an OpenTofu block. | Infrastructure as code |
| explain state, drift and idempotence | Explain why the state stays out of Git and what happens without it. | Infrastructure as code |
| manage VMs with OpenTofu | Change one of the two VMs by hand, show the drift with tofu plan and then a plan without changes. | OpenTofu with OpenNebula |
| justify the room the cluster needs | Work out why only one small VM fits next to the cluster on each node. | OpenTofu with OpenNebula |
| set up a Kubernetes cluster from code | Explain how the start script installs k3s on server and agent. | Kubernetes as code |
| justify the address ranges and routing of the cluster | Justify the ranges 10.52.0.0/16 and 10.53.0.0/16 and the host-gw routing. | Kubernetes as code |
| explain GitOps | Name the four principles and the difference from a rollout by a pipeline. | GitOps with Argo CD |
| roll out an application with Argo CD | Change the number of web shop pods through Git and show self-heal. | GitOps with Argo CD |
| justify where the Git server runs | Explain why Gitea runs on the front-end and not in the cluster. | GitOps with Argo CD |
| limit and separate namespaces with a template | Show the municipality's quota at its limit and the separation by the NetworkPolicy. | Platform templates |
| handle a request as a pull request | Add a member by pull request and explain what you look for in the review. | Platform templates |
| plan and time a rebuild of the platform (advanced) | Explain what tofu destroy deletes, what the teardown leaves alone and what comes back from Git afterwards. | Advanced tasks |
| restrict a member to its namespace with an AppProject (advanced) | Explain which rules an AppProject sets and where an application gets its project. | Advanced tasks |
protect the branch main in Gitea (advanced) | Name the settings that enforce a review and who can get around them in your Gitea. | Advanced tasks |
With this part you complete milestone 2. Rows marked as advanced belong to an advanced task, not to the base. You hand in milestones 1 and 2 together as hand-in 1. In part 5 you watch the web shop, let it grow under load and, as an advanced task, run a local language model.
Text and figures are licensed under CC BY-SA 4.0 and the code under the MIT License. The sources are on GitHub.