diff --git a/.dockerignore b/.dockerignore index 0dc487e1..73a60d08 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,7 +10,6 @@ charts/*/requirements.lock .eggs .fiotest .git -.helm-pid .tox AUTHORS ChangeLog diff --git a/.gitignore b/.gitignore index 169c1b58..4f262807 100644 --- a/.gitignore +++ b/.gitignore @@ -5,11 +5,11 @@ /charts/*.tgz /charts/*/charts /charts/*/requirements.lock +/charts/deps/*/ # Build & test artifacts /.cache /.eggs -/.helm-pid /.pytest_cache /.tox /build diff --git a/Makefile b/Makefile index 17d9f16d..6ea4bde0 100644 --- a/Makefile +++ b/Makefile @@ -27,14 +27,10 @@ LABEL ?= org.airshipit.build=community COMMIT ?= $(shell git rev-parse HEAD) DISTRO ?= ubuntu_bionic PYTHON = python3 -CHARTS := $(patsubst charts/%/.,%,$(wildcard charts/*/.)) +CHARTS := $(filter-out deps, $(patsubst charts/%/.,%,$(wildcard charts/*/.))) IMAGE := ${DOCKER_REGISTRY}/${IMAGE_PREFIX}/${IMAGE_NAME}:${IMAGE_TAG}-${DISTRO} BASE_IMAGE ?= -HELM_PIDFILE ?= $(abspath ./.helm-pid) - -CHARTS := $(patsubst charts/%/.,%,$(wildcard charts/*/.)) - all: charts lint tests: external-deps gate-lint @@ -63,9 +59,9 @@ charts: $(CHARTS) helm-init: $(addprefix helm-init-,$(CHARTS)) -helm-init-%: helm-serve +helm-init-%: helm-toolkit @echo Initializing chart $* - cd charts;if [ -s $*/requirements.yaml ]; then echo "Initializing $*";$(HELM) dep up $*; fi + cd charts;if [ -s $*/requirements.yaml ]; then echo "Initializing $*";$(HELM) dep up --skip-refresh $*; fi lint: helm-lint gate-lint @@ -127,8 +123,8 @@ ifeq ($(PUSH_IMAGE), true) endif -helm-serve: helm-install - ./tools/helm_tk.sh $(HELM) $(HELM_PIDFILE) +helm-toolkit: helm-install + ./tools/helm_tk.sh $(HELM) clean: rm -rf doc/build @@ -143,5 +139,5 @@ helm-install: .PHONY: $(CHARTS) all build_promenade charts check-docker clean docs \ dry-run dry-run-% external-deps gate-lint gate-lint-deps helm-init \ - helm-init-% helm-install helm-lint helm-lint-% helm-serve images \ + helm-init-% helm-install helm-lint helm-lint-% helm-toolkit images \ lint tests tests-pep8 tests-security tests-unit diff --git a/charts/apiserver-webhook/requirements.yaml b/charts/apiserver-webhook/requirements.yaml index ebece05a..d7891bca 100644 --- a/charts/apiserver-webhook/requirements.yaml +++ b/charts/apiserver-webhook/requirements.yaml @@ -14,5 +14,5 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/apiserver/requirements.yaml b/charts/apiserver/requirements.yaml index ebece05a..d7891bca 100644 --- a/charts/apiserver/requirements.yaml +++ b/charts/apiserver/requirements.yaml @@ -14,5 +14,5 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/controller_manager/requirements.yaml b/charts/controller_manager/requirements.yaml index 6c77589b..1337766f 100644 --- a/charts/controller_manager/requirements.yaml +++ b/charts/controller_manager/requirements.yaml @@ -14,5 +14,5 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/coredns/requirements.yaml b/charts/coredns/requirements.yaml index f0fb5835..43045081 100644 --- a/charts/coredns/requirements.yaml +++ b/charts/coredns/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/deps/.gitkeep b/charts/deps/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/charts/etcd/requirements.yaml b/charts/etcd/requirements.yaml index ebece05a..d7891bca 100644 --- a/charts/etcd/requirements.yaml +++ b/charts/etcd/requirements.yaml @@ -14,5 +14,5 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/haproxy/requirements.yaml b/charts/haproxy/requirements.yaml index f0fb5835..43045081 100644 --- a/charts/haproxy/requirements.yaml +++ b/charts/haproxy/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/promenade/requirements.yaml b/charts/promenade/requirements.yaml index f0fb5835..43045081 100644 --- a/charts/promenade/requirements.yaml +++ b/charts/promenade/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/proxy/requirements.yaml b/charts/proxy/requirements.yaml index f0fb5835..43045081 100644 --- a/charts/proxy/requirements.yaml +++ b/charts/proxy/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/charts/scheduler/requirements.yaml b/charts/scheduler/requirements.yaml index f0fb5835..43045081 100644 --- a/charts/scheduler/requirements.yaml +++ b/charts/scheduler/requirements.yaml @@ -1,4 +1,4 @@ dependencies: - name: helm-toolkit - repository: http://localhost:8879/charts + repository: file://../deps/helm-toolkit version: ">= 0.1.0" diff --git a/tools/helm_install.sh b/tools/helm_install.sh index 3b9061c0..730d1413 100755 --- a/tools/helm_install.sh +++ b/tools/helm_install.sh @@ -17,7 +17,7 @@ set -x HELM=$1 -HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v2.17.0-linux-amd64.tar.gz"} +HELM_ARTIFACT_URL=${HELM_ARTIFACT_URL:-"https://get.helm.sh/helm-v3.6.3-linux-amd64.tar.gz"} function install_helm_binary { diff --git a/tools/helm_tk.sh b/tools/helm_tk.sh index b969467f..47814d29 100755 --- a/tools/helm_tk.sh +++ b/tools/helm_tk.sh @@ -16,62 +16,16 @@ set -eux -HELM=${1} -HELM_PIDFILE=${2} -SERVE_DIR=$(mktemp -d) - +HTK_REPO=${HTK_REPO:-"https://opendev.org/openstack/openstack-helm-infra.git"} HTK_STABLE_COMMIT=${HTK_COMMIT:-"4a490b894ce2a3c547075a5559de58fd07124401"} -${HELM} init --client-only --skip-refresh - -if [[ -s ${HELM_PIDFILE} ]]; then - HELM_PID=$(cat "${HELM_PIDFILE}") - if ps "${HELM_PID}"; then - kill "${HELM_PID}" - sleep 0.5 - if ps "${HELM_PID}"; then - echo Failed to terminate Helm, PID = "${HELM_PID}" - exit 1 - fi - fi -fi - -${HELM} serve & > /dev/null -HELM_PID=${!} -echo Started Helm, PID = "${HELM_PID}" -echo "${HELM_PID}" > "${HELM_PIDFILE}" - -set +x -if [[ -z $(curl -s 127.0.0.1:8879 | grep 'Helm Repository') ]]; then - while [[ -z $(curl -s 127.0.0.1:8879 | grep 'Helm Repository') ]]; do - sleep 1 - echo "Waiting for Helm Repository" - done -else - echo "Helm serve already running" -fi -set -x - -if ${HELM} repo list | grep -q "^stable" ; then - ${HELM} repo remove stable -fi - -${HELM} repo add local http://localhost:8879/charts - - -#OSH Makefile is bugged, so ensure helm is in the path -if [[ ${HELM} != "helm" ]] -then - export PATH=${PATH}:$(dirname ${HELM}) -fi +TMP_DIR=$(mktemp -d) { - cd "${SERVE_DIR}" - git clone https://git.openstack.org/openstack/openstack-helm-infra.git || true - cd openstack-helm-infra - git reset --hard "${HTK_STABLE_COMMIT}" - - make helm-toolkit + HTK_REPO_DIR=$TMP_DIR/htk + git clone "$HTK_REPO" "$HTK_REPO_DIR" + (cd "$HTK_REPO_DIR" && git reset --hard "${HTK_STABLE_COMMIT}") + cp -r "${HTK_REPO_DIR}/helm-toolkit" charts/deps/ } -rm -rf "${SERVE_DIR}" +rm -rf "${TMP_DIR}"