From fa83b9cf4ad4ef58bb63cd55d58939837b49b00d Mon Sep 17 00:00:00 2001 From: Krzysztof Opasiak Date: Fri, 6 Nov 2020 19:33:47 +0100 Subject: [Tree-wide] Update helm repo after build Helm 3 no longer supports creation of a local repo as helm 2 did. Now we need to use external component named chartmuseum to provide us repo for helm charts. When we start chartmuseum for the first time repo is empty and during our build process we successively built helm charts to it. As a last chart we always build our umbrella chart called onap and also push it to repo. Unfortunately our local helm cache is unaware that this new chart is now available untill we push sth else or execute helm repo update which leads to really cryptic deployment failures. To mitigate this issue let's add a new target helm-repo-update which will be executed right after onap and just make sure that our local cache is up to date. WARNING: If you are using helm v3 and you build a single component for the first time on this machine or version of chart for the component that you are building has just changed recently it's not enough to run: $ make You need to also run: $ make helm-repo-update after successful build of your component. Issue-ID: OOM-2562 Change-Id: I77020a3fb5666106b86c6a76477a57d9dd5af047 Signed-off-by: Krzysztof Opasiak --- kubernetes/Makefile | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/kubernetes/Makefile b/kubernetes/Makefile index ca46ad8fe0..fc73dd40f9 100644 --- a/kubernetes/Makefile +++ b/kubernetes/Makefile @@ -21,6 +21,10 @@ PACKAGE_DIR := $(OUTPUT_DIR)/packages SECRET_DIR := $(OUTPUT_DIR)/secrets HELM_BIN := helm HELM_VER := $(shell $(HELM_BIN) version --template "{{.Version}}") +# use this if you would like to push onap charts to repo with other name +# WARNING: Helm v3+ only +# WARNING: Make sure to edit also requirements files +HELM_REPO := local ifneq ($(SKIP_LINT),TRUE) HELM_LINT_CMD := $(HELM_BIN) lint @@ -34,7 +38,7 @@ HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.) .PHONY: $(EXCLUDES) $(HELM_CHARTS) check-for-staging-images -all: $(COMMON_CHARTS_DIR) $(SUBMODS) $(HELM_CHARTS) plugins +all: $(COMMON_CHARTS_DIR) $(SUBMODS) $(HELM_CHARTS) helm-repo-update plugins $(COMMON_CHARTS): @echo "\n[$@]" @@ -68,12 +72,11 @@ lint-%: dep-% package-%: lint-% @mkdir -p $(PACKAGE_DIR) ifeq "$(findstring v3,$(HELM_VER))" "v3" - @if [ -f $*/Chart.yaml ]; then PACKAGE_NAME=$$($(HELM_BIN) package -d $(PACKAGE_DIR) $* | cut -d":" -f2) && $(HELM_BIN) push -f $$PACKAGE_NAME local; fi + @if [ -f $*/Chart.yaml ]; then PACKAGE_NAME=$$($(HELM_BIN) package -d $(PACKAGE_DIR) $* | cut -d":" -f2) && $(HELM_BIN) push -f $$PACKAGE_NAME $(HELM_REPO); fi else @if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi -endif - @$(HELM_BIN) repo index $(PACKAGE_DIR) +endif clean: @rm -f */requirements.lock @@ -85,6 +88,7 @@ plugins: @cp -R $(HELM_BIN) $(PACKAGE_DIR)/ # start up a local helm repo to serve up helm chart packages +# WARNING: Only helm < v3 supported repo: @mkdir -p $(PACKAGE_DIR) @$(HELM_BIN) serve --repo-path $(PACKAGE_DIR) & @@ -93,6 +97,7 @@ repo: @$(HELM_BIN) repo add local http://127.0.0.1:8879 # stop local helm repo +# WARNING: Only helm < v3 supported repo-stop: @pkill $(HELM_BIN) @$(HELM_BIN) repo remove local @@ -100,6 +105,10 @@ repo-stop: check-for-staging-images: $(ROOT_DIR)/contrib/tools/check-for-staging-images.sh +helm-repo-update: +ifeq "$(findstring v3,$(HELM_VER))" "v3" + @$(HELM_BIN) repo update $(HELM_REPO) +endif + %: @: - -- cgit 1.2.3-korg