summaryrefslogtreecommitdiffstats
path: root/kubernetes
diff options
context:
space:
mode:
authorKrzysztof Opasiak <k.opasiak@samsung.com>2020-11-06 19:33:47 +0100
committerKrzysztof Opasiak <k.opasiak@samsung.com>2020-11-06 19:48:20 +0100
commitfa83b9cf4ad4ef58bb63cd55d58939837b49b00d (patch)
treed673607d9b0f6cd904420bf81c7e1924b9686f32 /kubernetes
parent60966918e4298c14dcf36639fb0b0df0ae5e5c73 (diff)
[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 <component> 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 <k.opasiak@samsung.com>
Diffstat (limited to 'kubernetes')
-rw-r--r--kubernetes/Makefile19
1 files 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
+
%:
@:
-