Thin Helm chart in charts/vergabe-teilnahme (Deployment + Service), plain values overlay in helm/vergabe-teilnahme-values.yaml, ingress + cert-manager TLS in manifests/vergabe-teilnahme-ingress.yaml. Makefile targets vergabe-dry-run|deploy|ingress-deploy|status|migrate|seed|superuser|logs. Secrets stay in K8s (vergabe-app-credentials + vergabe-teilnahme-env) — no SOPS needed. Live: pod Running 1/1, /health/ 200 ok, /ausschreibungen/dashboard/ renders Übersicht, /admin/login/ renders Django admin (German). cert-manager issued vergabe-teilnahme-tls in ~35s. Workplan T07 (migrate+seed+smoke) marked in_progress; migrate completed inline (10+ apps migrated) so the dashboard would render. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
72 lines
3.0 KiB
Makefile
72 lines
3.0 KiB
Makefile
SHELL := /usr/bin/env bash
|
|
.DEFAULT_GOAL := help
|
|
|
|
GITEA_RELEASE ?= gitea
|
|
GITEA_NAMESPACE ?= default
|
|
GITEA_CHART ?= gitea-charts/gitea
|
|
GITEA_VALUES ?= helm/gitea-values.sops.yaml
|
|
GITEA_REGISTRY_VALUES ?= helm/gitea-registry-values.yaml
|
|
GITEA_INGRESS ?= manifests/gitea-ingress.yaml
|
|
|
|
VERGABE_RELEASE ?= vergabe-teilnahme
|
|
VERGABE_NAMESPACE ?= vergabe-teilnahme
|
|
VERGABE_CHART ?= charts/vergabe-teilnahme
|
|
VERGABE_VALUES ?= helm/vergabe-teilnahme-values.yaml
|
|
VERGABE_INGRESS ?= manifests/vergabe-teilnahme-ingress.yaml
|
|
|
|
##@ Gitea
|
|
|
|
gitea-deploy: ## Deploy / upgrade Gitea (S5 workload)
|
|
helm upgrade --install $(GITEA_RELEASE) $(GITEA_CHART) \
|
|
-f <(sops -d $(GITEA_VALUES)) \
|
|
-f $(GITEA_REGISTRY_VALUES) \
|
|
--namespace $(GITEA_NAMESPACE) --create-namespace
|
|
|
|
gitea-ingress-deploy: ## Apply the Gitea OCI registry ingress
|
|
kubectl apply -f $(GITEA_INGRESS)
|
|
|
|
gitea-status: ## Check Gitea health
|
|
kubectl get pods -n $(GITEA_NAMESPACE) -l app.kubernetes.io/instance=$(GITEA_RELEASE)
|
|
kubectl get svc -n $(GITEA_NAMESPACE) $(GITEA_RELEASE)
|
|
kubectl get ingress -n $(GITEA_NAMESPACE) $(GITEA_RELEASE) --ignore-not-found
|
|
kubectl cnpg status gitea-db -n databases
|
|
|
|
##@ Vergabe Teilnahme
|
|
|
|
vergabe-dry-run: ## helm template render (no apply) for inspection
|
|
helm template $(VERGABE_RELEASE) $(VERGABE_CHART) \
|
|
--namespace $(VERGABE_NAMESPACE) \
|
|
-f $(VERGABE_VALUES)
|
|
|
|
vergabe-deploy: ## Deploy / upgrade vergabe-teilnahme Helm release
|
|
helm upgrade --install $(VERGABE_RELEASE) $(VERGABE_CHART) \
|
|
--namespace $(VERGABE_NAMESPACE) --create-namespace \
|
|
-f $(VERGABE_VALUES) --wait --timeout 3m
|
|
|
|
vergabe-ingress-deploy: ## Apply the vergabe-teilnahme ingress (whywhynot.de)
|
|
kubectl apply -f $(VERGABE_INGRESS)
|
|
|
|
vergabe-status: ## Show vergabe-teilnahme pod / svc / ingress / cert state
|
|
kubectl get pods,svc,ingress,certificate -n $(VERGABE_NAMESPACE) -l app.kubernetes.io/instance=$(VERGABE_RELEASE) --ignore-not-found
|
|
|
|
vergabe-migrate: ## Run Django migrations against the live deployment
|
|
kubectl exec -n $(VERGABE_NAMESPACE) deploy/$(VERGABE_RELEASE) -- python manage.py migrate --noinput
|
|
|
|
vergabe-seed: ## Run the idempotent seed command
|
|
kubectl exec -n $(VERGABE_NAMESPACE) deploy/$(VERGABE_RELEASE) -- python manage.py seed_dev
|
|
|
|
vergabe-superuser: ## Open an interactive shell for createsuperuser
|
|
kubectl exec -it -n $(VERGABE_NAMESPACE) deploy/$(VERGABE_RELEASE) -- python manage.py createsuperuser
|
|
|
|
vergabe-logs: ## Tail vergabe-teilnahme app logs
|
|
kubectl logs -n $(VERGABE_NAMESPACE) -l app.kubernetes.io/instance=$(VERGABE_RELEASE) -f --tail=50
|
|
|
|
##@ Help
|
|
|
|
help: ## Show this help
|
|
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} \
|
|
/^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 } \
|
|
/^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) }' $(MAKEFILE_LIST)
|
|
|
|
.PHONY: gitea-deploy gitea-ingress-deploy gitea-status vergabe-dry-run vergabe-deploy vergabe-ingress-deploy vergabe-status vergabe-migrate vergabe-seed vergabe-superuser vergabe-logs help
|