From 2f72c0bb350762b570c256a38bd1aaf9fddd3b9b Mon Sep 17 00:00:00 2001 From: Thomas <thomas.schneider@chefkoch.de> Date: Fri, 22 Sep 2023 09:41:40 +0200 Subject: [PATCH 1/2] add --atomic flag and ROLLBACK_MODE --- helm.mk | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/helm.mk b/helm.mk index 963e468..e0751e3 100644 --- a/helm.mk +++ b/helm.mk @@ -28,7 +28,20 @@ ifdef DEBUG_MODE @- echo " " @- echo "----------------------------------" - @ envsubst < $(HELM_VALUES_FILE) | helm upgrade $(HELM_CHART_NAME) $(HELM_CHART_PATH) -n $(K8S_NAMESPACE) --install --debug --wait --values - + @ envsubst < $(HELM_VALUES_FILE) | helm upgrade $(HELM_CHART_NAME) $(HELM_CHART_PATH) -n $(K8S_NAMESPACE) --install --atomic --debug --wait --values - + +ifdef ROLLBACK_MODE + + @- echo "\n### rollback helm chart" + @- echo "-- DEBUG DEPLOYMENT --------------------" + @- echo " " + @- echo "Namespace: $(K8S_NAMESPACE)" + @- echo "Helm Chart: $(HELM_CHART_PATH)" + @- echo "Helm Release: $(HELM_CHART_NAME)" + @- echo " " + @- echo "----------------------------------" + + @ helm rollback -n ${HELM_NAMESPACE} ${HELM_CHART_NAME} else @@ -41,7 +54,7 @@ else @- echo " " @- echo "----------------------------------" - @ envsubst < $(HELM_VALUES_FILE) | helm upgrade $(HELM_CHART_NAME) $(HELM_CHART_PATH) -n $(K8S_NAMESPACE) --install --wait --values - + @ envsubst < $(HELM_VALUES_FILE) | helm upgrade $(HELM_CHART_NAME) $(HELM_CHART_PATH) -n $(K8S_NAMESPACE) --install --atomic --wait --values - endif From 7fe14dc83dc464a4a087c52f021200c89f5b9b6d Mon Sep 17 00:00:00 2001 From: Thomas <thomas.schneider@chefkoch.de> Date: Thu, 10 Apr 2025 15:22:00 +0200 Subject: [PATCH 2/2] allow subpath for compose deployments --- compose.mk | 62 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/compose.mk b/compose.mk index c9779bf..197964d 100644 --- a/compose.mk +++ b/compose.mk @@ -1,39 +1,55 @@ -MANDATORY-compose = DEPLOY_HOSTS DEPLOY_TYPE TAG +ifdef DOCKER_LOGIN +MANDATORY = $(shell printenv MANDATORY) DOCKER_USER DOCKER_PASS DOCKER_REGISTRY +endif + +ifndef DOCKER_LOGIN +DOCKER_LOGIN = 0 +endif pull-compose: - @- echo "\n### pulling image(s)" - @- $(foreach host,$(DEPLOY_HOSTS), \ + @echo "\n### pulling image(s)" + $(foreach host,$(DEPLOY_HOSTS), \ echo "$(host)"; \ - if test $(DOCKER_LOGIN) -eq 1 ; \ + if test "$(DOCKER_LOGIN)" = "1" ; \ then \ - echo "\n#### perfom docker login with user $(DOCKER_USER) on $(DOCKER_REGISTRY)"; \ + echo "\n#### perform docker login with user $(DOCKER_USER) on $(DOCKER_REGISTRY)"; \ ssh $(SSH_USER)@$(host) "docker login -u $(DOCKER_USER) -p $(DOCKER_PASS) $(DOCKER_REGISTRY)"; \ fi; \ - ssh $(SSH_USER)@$(host) "docker pull $(DOCKER_IMAGE)"; \ + if test -n "$(DOCKER_IMAGE)" ; \ + then \ + ssh $(SSH_USER)@$(host) "docker pull $(DOCKER_IMAGE)"; \ + fi; \ ) start-compose: - @- echo "\n### starting service(s)" - @- $(foreach host,$(DEPLOY_HOSTS), \ + @echo "\n### starting service(s)" + $(foreach host,$(DEPLOY_HOSTS), \ echo "$(host)"; \ - ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose up -d"; \ + if test -n "$(DEPLOY_SUBPATH)" ; \ + then \ + ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME)/$(DEPLOY_SUBPATH); docker-compose up -d"; \ + else \ + ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose up -d"; \ + fi; \ sleep $(DEPLOY_START_DELAY); \ ) -stop-compose: - @- echo "\n### stopping service(s)" - @- $(foreach host,$(DEPLOY_HOSTS), \ - echo "$(host)"; \ - ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose down"; \ - ) - logs-compose: - @- echo "\n### logs" - @- ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose logs -f $(service)" - -restart-compose: - @- $(foreach host,$(DEPLOY_HOSTS), \ + @echo "\n### logs" + $(foreach host,$(DEPLOY_HOSTS), \ echo "$(host)"; \ - ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose restart"; \ - sleep $(DEPLOY_START_DELAY); \ + ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose logs -f $(service)"; \ ) + +restart-compose: + @echo "\n### restarting service(s)" + $(foreach host,$(DEPLOY_HOSTS), \ + echo "$(host)"; \ + if test -n "$(DEPLOY_SUBPATH)" ; \ + then \ + ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME)/$(DEPLOY_SUBPATH); docker-compose restart"; \ + else \ + ssh $(SSH_USER)@$(host) "cd $(DEPLOY_PATH)/$(DEPLOY_NAME); docker-compose restart"; \ + fi; \ + sleep $(DEPLOY_START_DELAY); \ + ) \ No newline at end of file