KUSTOMIZE = docker run -v $(HOME)/.aws:/root/.aws:ro -v $(PWD):/host -w /host badjware/kustomize-plugins:latest KUSTOMIZEFLAGS = --enable_alpha_plugins KUBECTL = kubectl KUBECTLFLAGS = KUBECTLDIFFFLAGS = KUBECTLAPPLYFLAGS = --prune SRC := $(shell find kustomize/ -type f) OUTDIR = build DEVOUT = $(OUTDIR)/dev DEVMANIFESTSRC = kustomize/overlays/dev DEVMANIFESTOUT = $(DEVOUT)/manifest.yaml DEVCLUSTERSRC = kustomize/overlays/dev-cluster DEVCLUSTEROUT = $(DEVOUT)/cluster.yaml PRODOUT = $(OUTDIR)/prod PRODMANIFESTOUT = $(PRODOUT)/manifest.yaml PRODMANIFESTSRC = kustomize/overlays/prod PRODCLUSTEROUT = $(PRODOUT)/cluster.yaml PRODCLUSTERSRC = kustomize/overlays/prod-cluster ifeq ($(environment),prod) environment = prod ENVOUTDIR = $(PRODOUT) ENVOUTFILE = $(PRODMANIFESTOUT) $(PRODCLUSTEROUT) else environment = dev ENVOUTDIR = $(DEVOUT) ENVOUTFILE = $(DEVMANIFESTOUT) $(DEVCLUSTERTOUT) endif .PHONY: diff diff: $(environment) $(KUBECTL) $(KUBECTLFLAGS) diff $(KUBECTLDIFFFLAGS) -f $(ENVOUTDIR) | highlight --out-format xterm256 --syntax diff .PHONY: apply apply: $(environment) $(KUBECTL) $(KUBECTLFLAGS) apply $(KUBECTLAPPLYFLAGS) -l managed-by=kustomize-cluster -f $(ENVOUTDIR) $(KUBECTL) $(KUBECTLFLAGS) apply $(KUBECTLAPPLYFLAGS) -l managed-by=kustomize -f $(ENVOUTDIR) .PHONY: all dev prod all: dev prod dev: $(DEVMANIFESTOUT) $(DEVCLUSTEROUT) prod: $(PRODMANIFESTOUT) $(PRODCLUSTEROUT) $(DEVMANIFESTOUT): $(SRC) mkdir -p $(DEVOUT) $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(DEVMANIFESTSRC) >$(DEVMANIFESTOUT) || (rm $(DEVMANIFESTOUT); exit 1) $(DEVCLUSTEROUT): $(SRC) mkdir -p $(DEVOUT) $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(DEVCLUSTERSRC) >$(DEVCLUSTEROUT) || (rm $(DEVCLUSTEROUT); exit 1) $(PRODMANIFESTOUT): $(SRC) mkdir -p $(PRODOUT) $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(PRODMANIFESTSRC) >$(PRODMANIFESTOUT) || (rm $(PRODMANIFESTOUT); exit 1) $(PRODCLUSTEROUT): $(SRC) mkdir -p $(PRODOUT) $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(PRODCLUSTERSRC) >$(PRODCLUSTEROUT) || (rm $(PRODCLUSTEROUT); exit 1) .PHONY: clean clean: rm -r $(OUTDIR) # $(KUSTOMIZEOUTALL): $(SRC) # @mkdir -p $(dir $(KUSTOMIZEOUTALL)) # $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(KUSTOMIZEDIRALL) >$(KUSTOMIZEOUTALL) || (rm $(KUSTOMIZEOUTALL); exit 1) # $(KUSTOMIZEOUT): $(SRC) # @mkdir -p $(dir $(KUSTOMIZEOUT)) # $(KUSTOMIZE) build $(KUSTOMIZEFLAGS) $(KUSTOMIZEDIR) >$(KUSTOMIZEOUT) || (rm $(KUSTOMIZEOUT); exit 1)