Initial commit

This commit is contained in:
Scooby Husky
2026-03-09 20:21:35 -05:00
commit aacb8eebbe
314 changed files with 21766 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
#!/bin/bash
# Cilium Bootstrap - Install Cilium CNI before helmfile
# Nodes require a CNI to become Ready. This script installs Cilium via Helm
# and applies L2 announcement policies (replacing MetalLB).
#
# Usage: ./scripts/cilium-bootstrap.sh
set -euo pipefail
echo "================================================="
echo "Cilium CNI Bootstrap"
echo "================================================="
echo ""
# Add Cilium Helm repo
echo "Adding Cilium Helm repository..."
helm repo add cilium https://helm.cilium.io 2>/dev/null || true
helm repo update cilium
# Check if Cilium is already installed
if helm -n kube-system status cilium >/dev/null 2>&1; then
echo "✅ Cilium is already installed"
echo ""
echo "Upgrading Cilium to match helmfile values..."
helm upgrade cilium cilium/cilium \
--namespace kube-system \
--values infrastructure/cilium/values.yaml \
--wait --timeout 300s
else
echo "Installing Cilium CNI..."
helm install cilium cilium/cilium \
--namespace kube-system \
--values infrastructure/cilium/values.yaml \
--wait --timeout 300s
fi
echo ""
echo "Waiting for Cilium to be ready..."
kubectl -n kube-system rollout status daemonset/cilium --timeout=300s
echo ""
echo "Applying L2 announcement policy and IP pool..."
kubectl apply -f infrastructure/cilium/l2-announcement-policy.yaml
echo ""
echo "Applying baseline network policies..."
kubectl apply -f infrastructure/cilium/network-policies/dns.yaml
# Apply per-namespace policies only if namespaces exist
for ns in vault authentik rook-ceph; do
if kubectl get ns "$ns" >/dev/null 2>&1; then
kubectl apply -f infrastructure/cilium/network-policies/baseline.yaml 2>/dev/null || true
break
fi
done
echo ""
echo "Verifying Cilium status..."
kubectl -n kube-system exec ds/cilium -- cilium status --brief 2>/dev/null || echo " (cilium CLI check will be available after pods stabilize)"
echo ""
echo "Checking node readiness..."
kubectl get nodes -o wide
echo ""
echo "Verifying L2 announcements..."
kubectl get ciliuml2announcementpolicy,ciliumloadbalancerippool 2>/dev/null || echo " (L2 CRDs being registered...)"
echo ""
echo "================================================="
echo "✅ Cilium CNI bootstrap complete"
echo "================================================="