KUBECONFIG ?= $(HOME)/.kube/config-nodeup export KUBECONFIG .PHONY: all dns k3s core kubevela gitea monitoring stackops test-app all: dns k3s core kubevela gitea monitoring stackops test-app dns: bash 00-dns/cloudflare-records.sh k3s: bash 01-k3s/install.sh core: nginx-ingress cert-manager clusterissuer nginx-ingress: helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \ --namespace ingress-nginx --create-namespace \ --set controller.service.type=LoadBalancer \ --set controller.kind=DaemonSet \ --set controller.hostPort.enabled=true \ --set controller.service.externalTrafficPolicy=Local \ --timeout 10m --wait cert-manager: helm upgrade --install cert-manager jetstack/cert-manager \ --namespace cert-manager --create-namespace \ --set crds.enabled=true \ --timeout 10m --wait clusterissuer: @source ../../.cloudflare && \ sed "s|\$${CF_API_TOKEN}|$$CF_API_TOKEN|g" 02-core/clusterissuer.yaml | \ kubectl apply -f - kubevela: helm upgrade --install kubevela kubevela/vela-core \ --namespace vela-system --create-namespace \ --timeout 8m --wait kubectl apply --server-side \ -f https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.23/releases/cnpg-1.23.0.yaml helm upgrade --install redis-operator ot-helm/redis-operator \ --namespace redis-operator --create-namespace --wait kubectl apply -f ../kubevela/components/ gitea: helm repo add gitea-charts https://dl.gitea.com/charts/ || true helm repo update gitea-charts helm upgrade --install gitea gitea-charts/gitea \ --namespace gitea --create-namespace \ -f 04-gitea/values.yaml \ --timeout 10m --wait monitoring: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts || true helm repo add grafana https://grafana.github.io/helm-charts || true helm repo update prometheus-community grafana helm upgrade --install monitoring prometheus-community/kube-prometheus-stack \ --namespace monitoring --create-namespace \ -f 05-monitoring/values-prometheus.yaml \ --timeout 10m --wait helm upgrade --install loki grafana/loki-stack \ --namespace monitoring \ -f 05-monitoring/values-loki.yaml \ --timeout 5m --wait stackops: kubectl apply -f 06-stackops/rbac.yaml kubectl create secret generic stackops-secrets \ --namespace stackops \ --from-literal=api-token=dev-secret-token \ --dry-run=client -o yaml | kubectl apply -f - kubectl apply -f 06-stackops/deployment.yaml test-app: @echo "Deploy test app via StackOps API or manually:" @echo " cd ../toml-converter && go run ./cmd/main.go -f ../infra/07-test-app/stackfile.toml -o /tmp/whoami.yaml" @echo " kubectl create namespace whoami && kubectl apply -f /tmp/whoami.yaml -n whoami"