DX: Use generic Makefile for packages (#288)

This change is aimed at improving the development experience.

- The option `make delete` has been added.
- Added check for `NAME` and `NAMESPACE` variables
- Now, any package (not just system ones) can include options such as
make show, make diff, make apply.
- Applications from packages/extra require explicit specification of the
`NAMESPACE`.
- Applications from packages/apps require explicit specification of both
`NAME` and `NAMESPACE`.

Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
This commit is contained in:
Andrei Kvapil
2024-08-16 10:26:13 +02:00
committed by GitHub
parent a2bcf1006f
commit a120ce726e
53 changed files with 95 additions and 39 deletions

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,6 +1,7 @@
NGINX_CACHE_TAG = v0.1.0
include ../../../scripts/common-envs.mk
include ../../../scripts/package.mk
image: image-nginx

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,6 +1,7 @@
UBUNTU_CONTAINER_DISK_TAG = v1.30.1
include ../../../scripts/common-envs.mk
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,3 +1,5 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
cat values.schema.json.tmp | jq '.properties.httpAndHttps.properties.mode.enum = ["tcp","tcp-with-proxy"]' > values.schema.json

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,3 +1,5 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
cat values.schema.json.tmp | \

View File

@@ -1,2 +1,4 @@
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,2 +1,6 @@
NAME=etcd
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,3 +1,7 @@
NAME=ingress
include ../../../scripts/package.mk
update: get-cloudflare-ips
get-cloudflare-ips:

View File

@@ -1,3 +1,7 @@
NAME=monitoring
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json.tmp -r README.md
cat values.schema.json.tmp | \

View File

@@ -1,2 +1,6 @@
NAME=seaweedfs
include ../../../scripts/package.mk
generate:
readme-generator -v values.yaml -s values.schema.json -r README.md

View File

@@ -1,7 +1,7 @@
export NAME=capi-operator
export NAMESPACE=cozy-cluster-api
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,4 +1,4 @@
export NAME=capi-providers
export NAMESPACE=cozy-cluster-api
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk

View File

@@ -1,4 +1,4 @@
export NAME=cert-manager-issuers
export NAMESPACE=cozy-cert-manager
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk

View File

@@ -1,7 +1,7 @@
export NAME=cert-manager
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -4,7 +4,7 @@ export NAME=cilium
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/common-envs.mk
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=clickhouse-operator
export NAMESPACE=cozy-clickhouse-operator
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -2,7 +2,7 @@ export NAME=dashboard
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/common-envs.mk
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update: update-chart update-dockerfiles
image: image-dashboard image-kubeapps-apis

View File

@@ -1,7 +1,7 @@
export NAME=etcd-operator
export NAMESPACE=cozy-${NAME}
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
NAME=fluxcd-operator
NAMESPACE=cozy-fluxcd
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
apply-locally:
helm upgrade -i -n $(NAMESPACE) $(NAME) .

View File

@@ -4,4 +4,4 @@ NAMESPACE=cozy-$(NAME)
apply-locally:
helm upgrade -i -n $(NAMESPACE) $(NAME) .
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk

View File

@@ -1,3 +1,7 @@
NAME=grafana-oncall-system
include ../../../scripts/package.mk
update:
rm -rf charts
helm repo add grafana https://grafana.github.io/helm-charts

View File

@@ -1,7 +1,7 @@
export NAME=grafana-operator
export NAMESPACE=cozy-grafana-operator
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,6 @@
export NAME=ingress-nginx
export NAMESPACE=cozy-$(NAME)
NAME=ingress-nginx-system
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=kafka-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -2,7 +2,7 @@ export NAME=kamaji
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/common-envs.mk
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -4,7 +4,7 @@ export NAME=kubeovn
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/common-envs.mk
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts && mkdir -p charts/kube-ovn

View File

@@ -1,7 +1,7 @@
export NAME=kubevirt-cdi-operator
export NAMESPACE=cozy-kubevirt-cdi
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates

View File

@@ -1,7 +1,7 @@
export NAME=kubevirt-cdi
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates

View File

@@ -1,7 +1,7 @@
export NAME=kubevirt-operator
export NAMESPACE=cozy-kubevirt
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates

View File

@@ -1,7 +1,7 @@
export NAME=kubevirt
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates

View File

@@ -1,4 +1,4 @@
export NAME=linstor
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk

View File

@@ -1,7 +1,7 @@
export NAME=mariadb-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=metallb
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=monitoring
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,3 +1,5 @@
include ../../../scripts/package.mk
update:
rm -rf charts
helm repo add nats https://nats-io.github.io/k8s/helm/charts/

View File

@@ -1,7 +1,7 @@
export NAME=cosi-controller
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates

View File

@@ -1,7 +1,7 @@
export NAME=piraeus-operator
export NAMESPACE=cozy-linstor
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=postgres-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=rabbitmq-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf templates/cluster-operator.yml

View File

@@ -1,7 +1,7 @@
export NAME=redis-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=snapshot-controller
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=traffic-manager
export NAMESPACE=cozy-telepresence
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -1,7 +1,7 @@
export NAME=victoria-metrics-operator
export NAMESPACE=cozy-$(NAME)
include ../../../scripts/package-system.mk
include ../../../scripts/package.mk
update:
rm -rf charts

View File

@@ -4,20 +4,27 @@
help: ## Show this help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
show: ## Show output of rendered templates
show: check ## Show output of rendered templates
kubectl get hr -n $(NAMESPACE) $(NAME) -o jsonpath='{.spec.values}' | NAMESPACE=$(NAMESPACE) NAME=$(NAME) \
helm template --dry-run=server --post-renderer ../../../scripts/fluxcd-kustomize.sh -n $(NAMESPACE) $(NAME) . -f -
apply: suspend ## Apply Helm release to a Kubernetes cluster
apply: check suspend ## Apply Helm release to a Kubernetes cluster
kubectl get hr -n $(NAMESPACE) $(NAME) -o jsonpath='{.spec.values}' | NAMESPACE=$(NAMESPACE) NAME=$(NAME) \
helm upgrade -i --post-renderer ../../../scripts/fluxcd-kustomize.sh -n $(NAMESPACE) $(NAME) . -f -
diff: ## Diff Helm release against objects in a Kubernetes cluster
diff: check ## Diff Helm release against objects in a Kubernetes cluster
kubectl get hr -n $(NAMESPACE) $(NAME) -o jsonpath='{.spec.values}' | NAMESPACE=$(NAMESPACE) NAME=$(NAME) \
helm diff upgrade --allow-unreleased --post-renderer ../../../scripts/fluxcd-kustomize.sh -n $(NAMESPACE) $(NAME) . -f -
helm diff upgrade --show-secrets --allow-unreleased --post-renderer ../../../scripts/fluxcd-kustomize.sh -n $(NAMESPACE) $(NAME) . -f -
suspend: ## Suspend reconciliation for an existing Helm release
suspend: check ## Suspend reconciliation for an existing Helm release
kubectl patch hr -n $(NAMESPACE) $(NAME) -p '{"spec": {"suspend": true}}' --type=merge --field-manager=flux-client-side-apply
resume: ## Resume reconciliation for an existing Helm release
resume: check ## Resume reconciliation for an existing Helm release
kubectl patch hr -n $(NAMESPACE) $(NAME) -p '{"spec": {"suspend": null}}' --type=merge --field-manager=flux-client-side-apply
delete: check suspend ## Delete Helm release from a Kubernetes cluster
helm uninstall -n $(NAMESPACE) $(NAME)
check:
@if [ -z "$(NAME)" ]; then echo "env NAME is not set!" >&2; exit 1; fi
@if [ -z "$(NAMESPACE)" ]; then echo "env NAMESPACE is not set!" >&2; exit 1; fi