second take on kubectl apply with multi file manifests

This commit is contained in:
Andreas Neue 2023-09-20 14:11:20 +02:00
parent 96fa48f775
commit 435b2f9fcc
1 changed files with 16 additions and 14 deletions

30
k8s.mk
View File

@ -4,28 +4,30 @@
MANDATORY-k8s = K8S_CONTEXT MANDATORY-k8s = K8S_CONTEXT
k8s_fetch_manifest = \ start-k8s: SHELL:=/bin/bash
if [ $(1) == "http*" ]; then \
curl -o $(2) $(1) \
else \
cp $(1) $(2) \
fi
start-k8s: start-k8s:
@- echo "\n### starting deployment with k8s" @- echo "### starting deployment with k8s"
@- echo "\n### setting kubernetes context to $(K8S_CONTEXT)" @- echo "### setting kubernetes context to $(K8S_CONTEXT)"
@ kubectl config use-context $(K8S_CONTEXT) #@ kubectl config use-context $(K8S_CONTEXT)
@- echo "\n### run kubectl apply -f kubernetes.yaml and secrets.yaml" @- echo "### run kubectl apply -f kubernetes.yaml and secrets.yaml"
@- cat kubernetes.yaml secrets.yaml >_manifest.yaml @- cat kubernetes.yaml secrets.yaml >_manifest.yaml
ifdef K8S_MANIFESTS ifdef K8S_MANIFESTS
@- $(foreach file,$(K8S_MANIFESTS), \ @- echo "\n%%%DEBUG1"
$(call k8s_fetch_manifest($(file),"_tmpfile.yaml")); \ @- echo $(K8S_MANIFESTS)
@- for file in $(K8S_MANIFESTS); do \
if [[ $$file == http* ]] ; \
then \
curl -o _tmpfile.yaml $$file; \
else \
cp $$file _tmpfile.yaml; \
fi; \
cat _tmpfile.yaml >>_manifest.yaml; \ cat _tmpfile.yaml >>_manifest.yaml; \
rm _tmpfile.yaml; \ rm _tmpfile.yaml; \
) done
endif endif
@- echo "\n%%%DEBUG22"
@ cat _manifest.yaml | envsubst | kubectl apply -f - @ cat _manifest.yaml | envsubst | kubectl apply -f -
@- rm _manifest.yaml @- rm _manifest.yaml