From a0da68409a1224ce84e4c7aa6487e0a5a9c681ee Mon Sep 17 00:00:00 2001 From: Sean Eagan Date: Wed, 28 Jul 2021 09:29:33 -0500 Subject: [PATCH] Use helm 3 in chart build `helm serve` is removed in helm 3 so this moves to using local `file://` dependencies [0] instead. [0]: https://helm.sh/docs/chart_best_practices/dependencies/#repository-urls Signed-off-by: Sean Eagan Change-Id: Ibdea9f1ccda043259620add022643e5c9800259a --- .dockerignore | 1 + .gitignore | 1 + Makefile | 10 +++--- charts/deps/.gitkeep | 0 charts/shipyard/requirements.yaml | 2 +- tools/helm_install.sh | 2 +- tools/helm_tk.sh | 52 +++++++------------------------ 7 files changed, 20 insertions(+), 48 deletions(-) create mode 100644 charts/deps/.gitkeep diff --git a/.dockerignore b/.dockerignore index 91b27a54..6f3f3204 100644 --- a/.dockerignore +++ b/.dockerignore @@ -112,6 +112,7 @@ AUTHORS **/*.tgz /charts/shipyard/charts /charts/shipyard/requirements.lock +/charts/deps/*/ .DS_Store # vscode diff --git a/.gitignore b/.gitignore index 0e6f49b4..740ab8e3 100644 --- a/.gitignore +++ b/.gitignore @@ -113,6 +113,7 @@ AUTHORS **/*.tgz /charts/shipyard/charts /charts/shipyard/requirements.lock +/charts/deps/*/ .DS_Store # vscode diff --git a/Makefile b/Makefile index 0972893a..afd46737 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,7 @@ $(IMAGE_NAME): # Create tgz of the chart .PHONY: charts -charts: clean helm-init +charts: clean helm-toolkit $(HELM) dep up charts/shipyard $(HELM) package charts/shipyard @@ -65,7 +65,7 @@ lint: pep8 helm_lint build_docs # Dry run templating of chart .PHONY: dry-run -dry-run: clean helm-init +dry-run: clean helm-toolkit $(HELM) template charts/shipyard .PHONY: security @@ -136,12 +136,12 @@ pep8: cd $(BUILD_CTX)/shipyard_airflow; tox -e pep8 .PHONY: helm_lint -helm_lint: clean helm-init +helm_lint: clean helm-toolkit $(HELM) lint charts/shipyard # Initialize local helm config -.PHONY: helm-init -helm-init: helm-install +.PHONY: helm-toolkit +helm-toolkit: helm-install tools/helm_tk.sh $(HELM) # Install helm binary diff --git a/charts/deps/.gitkeep b/charts/deps/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/charts/shipyard/requirements.yaml b/charts/shipyard/requirements.yaml index 4ed4e38b..094940bb 100644 --- a/charts/shipyard/requirements.yaml +++ b/charts/shipyard/requirements.yaml @@ -15,5 +15,5 @@ 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 acee273d..a305bfec 100755 --- a/tools/helm_tk.sh +++ b/tools/helm_tk.sh @@ -12,50 +12,20 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# -# Script to setup helm-toolkit and helm dep up the shipyard chart -# -HELM=$1 + +set -eux + +HTK_REPO=${HTK_REPO:-"https://opendev.org/openstack/openstack-helm-infra.git"} HTK_STABLE_COMMIT=${HTK_COMMIT:-"b1a247e7f54ab12d830ab74f7634457b4e43f3ef"} -set -x +TMP_DIR=$(mktemp -d) -function helm_serve { - if [[ -d "$HOME/.helm" ]]; then - echo ".helm directory found" - else - ${HELM} init --client-only --skip-refresh - fi - if [[ -z $(curl -s 127.0.0.1:8879 | grep 'Helm Repository') ]]; then - ${HELM} serve & > /dev/null - 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 - - if ${HELM} repo list | grep -q "^stable" ; then - ${HELM} repo remove stable - fi - - ${HELM} repo add local http://localhost:8879/charts +{ + 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/ } -mkdir -p build -cd build -git clone https://opendev.org/openstack/openstack-helm-infra.git || true -cd openstack-helm-infra -git reset --hard "${HTK_STABLE_COMMIT}" - -helm_serve - -if [[ ${HELM} != "helm" ]] -then - export PATH=${PATH}:$(dirname ${HELM}) -fi - -make helm-toolkit -${HELM} dep up ../../charts/shipyard +rm -rf "${TMP_DIR}"