Skip to content

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 …TaskLook up
tell declarative and imperative descriptions apartExplain what a second run does with onetemplate instantiate and with an OpenTofu block.Infrastructure as code
explain state, drift and idempotenceExplain why the state stays out of Git and what happens without it.Infrastructure as code
manage VMs with OpenTofuChange 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 needsWork out why only one small VM fits next to the cluster on each node.OpenTofu with OpenNebula
set up a Kubernetes cluster from codeExplain how the start script installs k3s on server and agent.Kubernetes as code
justify the address ranges and routing of the clusterJustify the ranges 10.52.0.0/16 and 10.53.0.0/16 and the host-gw routing.Kubernetes as code
explain GitOpsName the four principles and the difference from a rollout by a pipeline.GitOps with Argo CD
roll out an application with Argo CDChange the number of web shop pods through Git and show self-heal.GitOps with Argo CD
justify where the Git server runsExplain why Gitea runs on the front-end and not in the cluster.GitOps with Argo CD
limit and separate namespaces with a templateShow the municipality's quota at its limit and the separation by the NetworkPolicy.Platform templates
handle a request as a pull requestAdd 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.