Initial commit: GitOps Starter Pack

A teaching-first, single-cluster GitOps setup: Talos Linux + Argo CD with
an app-of-apps layout, MetalLB pre-installed for real LoadBalancer IPs on
bare metal, a demo app, and a progressive docs/ walkthrough with a
CLAUDE.md tutor persona and guided bootstrap checklist.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Maxwell Morris
2026-08-22 17:30:45 +01:00
co-authored by Claude Sonnet 5
commit 92c3ad3191
29 changed files with 2083 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
# A ConfigMap is just a bag of key/value data — in this case, a small HTML
# file — that lives in the cluster as its own object, separate from the
# Pod that uses it. We mount it into the nginx container below instead of
# baking the page into a custom container image.
#
# Why this matters for the GitOps story: this is the file you'll edit in
# docs/06-your-first-change.md. Change the text here, commit, push, and
# watch Argo CD notice the difference in Git and push it into the cluster
# for you — no `kubectl` command involved. That's the whole loop, proven
# with one line of HTML.
apiVersion: v1
kind: ConfigMap
metadata:
name: demo-page
namespace: demo
data:
index.html: |
<!doctype html>
<html>
<head><title>It works!</title></head>
<body style="font-family: sans-serif; text-align: center; margin-top: 10%;">
<h1>It works!</h1>
<p>This page is being served from a Kubernetes cluster that Argo CD
deployed straight from Git. Edit <code>apps/demo/configmap.yaml</code>,
commit, push, and refresh this page.</p>
</body>
</html>