1+ #! /bin/bash
2+ set -e
3+
4+ SCRIPT_PATH=$( dirname " ${BASH_SOURCE[0]} " )
5+ . $SCRIPT_PATH /helm_chart.cfg
6+
7+ if [[ -n $WORK_DIR ]]; then
8+ mkdir -p $WORK_DIR
9+ cd $WORK_DIR
10+ fi
11+
12+ IAM_TOKEN=$( ycp --profile=" $PROFILE " iam create-token)
13+ DOMAIN=" cr.yandex"
14+
15+ if [[ " $PROFILE " == " israel" ]]; then
16+ DOMAIN=" cr.cloudil.com"
17+ fi
18+
19+ if [[ " $PROFILE " == " preprod" ]]; then
20+ DOMAIN=" cr.cloud-preprod.yandex.net"
21+ fi
22+
23+ docker login --username iam --password $IAM_TOKEN $DOMAIN
24+
25+ git clone https://github.com/hashicorp/vault-helm.git ./vault-helm
26+ git clone ssh://git@bb.yandexcloud.net/cloud/mk8s-marketplace-helm.git ./mk8s-marketplace-helm
27+
28+ cd vault-helm
29+
30+ TAGS=$( git tag --sort=" -version:refname" )
31+ echo $TAGS
32+
33+ VERSION=$( echo " $BASE_VERSION " | cut -c 2-)
34+ CUT_VERSION=" ${VERSION% .* } "
35+ ACTUAL_TAG=' '
36+
37+ for TAG in $TAGS
38+ do
39+ git checkout tags/$TAG values.yaml
40+ ACTUAL_VERSION=$( yq ' .server.image.tag' values.yaml)
41+ ACTUAL_VERSION=" ${ACTUAL_VERSION% .* } "
42+ echo " Actual version = $ACTUAL_VERSION and version = $CUT_VERSION "
43+ if [ $CUT_VERSION = $ACTUAL_VERSION ]
44+ then
45+ ACTUAL_TAG=$TAG
46+ echo " Found actual version $ACTUAL_VERSION "
47+ break
48+ fi
49+ done
50+
51+ git checkout tags/$ACTUAL_TAG
52+
53+ sudo rm -r ./.git
54+
55+ CSI_PROVIDER_ACTUAL_TAG=$( yq ' .csi.image.tag' values.yaml)
56+ K8S_ACTUAL_TAG=$( yq ' .injector.image.tag' values.yaml)
57+
58+ cd ../
59+
60+ docker pull hashicorp/vault-csi-provider:$CSI_PROVIDER_ACTUAL_TAG --platform amd64
61+ docker pull hashicorp/vault-k8s:$K8S_ACTUAL_TAG --platform amd64
62+
63+ CSI_PROVIDER_IMAGE_ID=$( docker images hashicorp/vault-csi-provider:$CSI_PROVIDER_ACTUAL_TAG -q)
64+ K8S_IMAGE_ID=$( docker images hashicorp/vault-k8s:$K8S_ACTUAL_TAG -q)
65+
66+ docker tag $K8S_IMAGE_ID $DOMAIN /$REGISTRY_ID /vault/vault-k8s:$K8S_ACTUAL_TAG
67+ docker tag $K8S_IMAGE_ID $DOMAIN /$REGISTRY_ID /vault/vault-k8s:latest
68+
69+ docker tag $CSI_PROVIDER_IMAGE_ID $DOMAIN /$REGISTRY_ID /vault/vault-csi-provider:$CSI_PROVIDER_ACTUAL_TAG
70+ docker tag $CSI_PROVIDER_IMAGE_ID $DOMAIN /$REGISTRY_ID /vault/vault-csi-provider:latest
71+
72+ docker push $DOMAIN /$REGISTRY_ID /vault/vault-k8s:$K8S_ACTUAL_TAG
73+ docker push $DOMAIN /$REGISTRY_ID /vault/vault-k8s:latest
74+
75+ docker push $DOMAIN /$REGISTRY_ID /vault/vault-csi-provider:$CSI_PROVIDER_ACTUAL_TAG
76+ docker push $DOMAIN /$REGISTRY_ID /vault/vault-csi-provider:latest
77+
78+ rm -r ./mk8s-marketplace-helm/products/hashicorp-vault/chart
79+ cp -r ./vault-helm ./mk8s-marketplace-helm/products/hashicorp-vault/chart
80+ rm -r ./mk8s-marketplace-helm/products/hashicorp-vault/chart/test
81+
82+ CHART_VERSION=" $( yq ' .version' ./vault-helm/Chart.yaml) -1"
83+ replacement=$CHART_VERSION yq -i ' .version = strenv(replacement)' ./mk8s-marketplace-helm/products/hashicorp-vault/chart/Chart.yaml
84+
85+ cat > ./mk8s-marketplace-helm/products/hashicorp-vault/chart/templates/kms-creds-secret.yaml << EOF
86+ apiVersion: v1
87+ kind: Secret
88+ metadata:
89+ name: kms-creds
90+ namespace: {{ .Release.Namespace | quote }}
91+ labels:
92+ chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
93+ type: Opaque
94+ data:
95+ "credentials.json": {{ .Values.yandexKmsAuthJson | b64enc }}
96+ EOF
97+
98+ /bin/bash $SCRIPT_PATH /update_values.sh
99+
100+ cd mk8s-marketplace-helm/products/hashicorp-vault/chart
101+ helm package .
102+ helm push ./vault-$( echo " $ACTUAL_TAG " | cut -c 2-) -1.tgz oci://$DOMAIN /$REGISTRY_ID /vault/chart
0 commit comments