No description
|
|
||
|---|---|---|
| .gitea/workflows | ||
| apps | ||
| public | ||
| appset-helm.yaml | ||
| appset-kustomize.yaml | ||
| cilium.yaml | ||
| README.md | ||
| renovate.json | ||
| talos-patch.yaml | ||
nuc-talos
Single-node Talos Kubernetes cluster for TheCodeDom infrastructure.
Prerequisites
Bootstrap
# Generate node configs
talosctl gen config nuc https://<endpoint>:6443 --config-patch @talos-patch.yaml
# Apply to node
talosctl apply-config --nodes <ip> --file controlplane.yaml
# Bootstrap cluster
talosctl bootstrap --nodes <ip>
# Get kubeconfig
talosctl kubeconfig --nodes <ip>
# Deploy ArgoCD
kubectl apply -k argocd_bootstrap/
Structure
apps/
├── helm/ # Helm release definitions (picked up by ApplicationSet)
└── kustomizations/ # Kustomize apps with KSOPS secrets
argocd_bootstrap/ # ArgoCD core-install with KSOPS support
talos-patch.yaml # Talos machine config patches
Adding Applications
Helm chart: Create apps/helm/<name>.yaml:
name: my-app
namespace: my-app
repoURL: https://charts.example.com
chart: my-chart
targetRevision: 1.0.0
autoSync: true
values: |
key: value
Kustomization: Create apps/kustomizations/<name>/kustomization.yaml with resources and optional KSOPS generators.
Secrets
Encrypt with SOPS before committing:
sops -e -i apps/kustomizations/<app>/secret.yaml