22set -euo pipefail
33
44SCRIPTPATH=" $( cd " $( dirname " $0 " ) " ; pwd -P ) "
5-
6- PLATFORM=$( uname | tr ' [:upper:]' ' [:lower:]' )
7- HELM_VERSION=" 3.7.1"
8- NAMESPACE=" kube-system"
9-
105MAKEFILEPATH=$SCRIPTPATH /../Makefile
116VERSION=$( make -s -f $MAKEFILEPATH version)
127BUILD_DIR=$SCRIPTPATH /../build/k8s-resources/$VERSION
138
14- INDV_RESOURCES_DIR=$BUILD_DIR /individual-resources
15- TAR_RESOURCES_FILE=$BUILD_DIR /individual-resources.tar
16- AGG_RESOURCES_YAML=$BUILD_DIR /all-resources.yaml
17- mkdir -p $INDV_RESOURCES_DIR
18-
19- QP_INDV_RESOURCES_DIR=$BUILD_DIR /individual-resources-queue-processor
20- QP_TAR_RESOURCES_FILE=$BUILD_DIR /individual-resources-queue-processor.tar
21- QP_AGG_RESOURCES_YAML=$BUILD_DIR /all-resources-queue-processor.yaml
22- mkdir -p $QP_INDV_RESOURCES_DIR
9+ PLATFORM=$( uname | tr ' [:upper:]' ' [:lower:]' )
10+ HELM_VERSION=" 3.7.1"
11+ NAMESPACE=" kube-system"
12+ K8S_VERSION=" 1.24.0"
13+ SUFFIX=" "
2314
24- USAGE=$( cat << ' EOM '
15+ USAGE=$( cat << EOM
2516 Usage: generate-k8s-yaml [-n <K8s_NAMESPACE>]
2617 Generates the kubernetes yaml resource files from the helm chart
2718 and places them into the build dir.
2819 Example: generate-k8s-yaml -n kube-system
2920 Optional:
30- -n Kubernetes namespace
21+ -n NAMESPACE Kubernetes namespace
22+ -k VERSION Target Kubernetes version (default is ${K8S_VERSION} )
23+ -s SUFFIX String appended to generated file and directory names
24+ -v Enable verbose output
3125EOM
3226)
3327
3428# Process our input arguments
35- while getopts " vn: " opt; do
29+ while getopts " n:k:s:v " opt; do
3630 case ${opt} in
3731 n ) # K8s namespace
3832 NAMESPACE=$OPTARG
3933 ;;
34+ k ) # K8s version
35+ K8S_VERSION=$OPTARG
36+ ;;
37+ s ) # Suffix
38+ SUFFIX=$OPTARG
39+ ;;
4040 v ) # Verbose
4141 set -x
4242 ;;
@@ -47,20 +47,35 @@ while getopts "vn:" opt; do
4747 esac
4848done
4949
50- curl -L https://get.helm.sh/helm-v$HELM_VERSION -$PLATFORM -amd64.tar.gz | tar zxf - -C $BUILD_DIR
51- mv $BUILD_DIR /$PLATFORM -amd64/helm $BUILD_DIR /.
52- rm -rf $BUILD_DIR /$PLATFORM -amd64
53- chmod +x $BUILD_DIR /helm
50+ INDV_RESOURCES_DIR=${BUILD_DIR} /individual-resources${SUFFIX}
51+ TAR_RESOURCES_FILE=${BUILD_DIR} /individual-resources${SUFFIX} .tar
52+ AGG_RESOURCES_YAML=${BUILD_DIR} /all-resources${SUFFIX} .yaml
53+ mkdir -p $INDV_RESOURCES_DIR
54+
55+ QP_INDV_RESOURCES_DIR=${BUILD_DIR} /individual-resources-queue-processor${SUFFIX}
56+ QP_TAR_RESOURCES_FILE=${BUILD_DIR} /individual-resources-queue-processor${SUFFIX} .tar
57+ QP_AGG_RESOURCES_YAML=${BUILD_DIR} /all-resources-queue-processor${SUFFIX} .yaml
58+ mkdir -p $QP_INDV_RESOURCES_DIR
59+
60+ HELM=$BUILD_DIR /helm
61+ if [[ ! -e $HELM ]]; then
62+ curl -L https://get.helm.sh/helm-v$HELM_VERSION -$PLATFORM -amd64.tar.gz | tar zxf - -C $BUILD_DIR
63+ mv $BUILD_DIR /$PLATFORM -amd64/helm $BUILD_DIR /.
64+ rm -rf $BUILD_DIR /$PLATFORM -amd64
65+ chmod +x $HELM
66+ fi
5467
5568# # IMDS Mode
56- $BUILD_DIR /helm template aws-node-termination-handler \
69+ $HELM template aws-node-termination-handler \
5770 --namespace $NAMESPACE \
71+ --kube-version ${K8S_VERSION} \
5872 --set targetNodeOs=" linux windows" \
5973 $SCRIPTPATH /../config/helm/aws-node-termination-handler/ > $AGG_RESOURCES_YAML
6074
6175# # Queue Processor Mode
62- $BUILD_DIR /helm template aws-node-termination-handler \
76+ $HELM template aws-node-termination-handler \
6377 --namespace $NAMESPACE \
78+ --kube-version ${K8S_VERSION} \
6479 --set enableSqsTerminationDraining=" true" \
6580 --set enableProbesServer=" true" \
6681 $SCRIPTPATH /../config/helm/aws-node-termination-handler/ > $QP_AGG_RESOURCES_YAML
@@ -74,15 +89,17 @@ cat $QP_AGG_RESOURCES_YAML | grep -v 'helm.sh\|app.kubernetes.io/managed-by: Hel
7489mv $BUILD_DIR /helm_annotations_removed.yaml $QP_AGG_RESOURCES_YAML
7590
7691# IMDS Mode
77- $BUILD_DIR /helm template aws-node-termination-handler \
92+ $HELM template aws-node-termination-handler \
7893 --namespace $NAMESPACE \
94+ --kube-version ${K8S_VERSION} \
7995 --set targetNodeOs=" linux windows" \
8096 --output-dir $INDV_RESOURCES_DIR / \
8197 $SCRIPTPATH /../config/helm/aws-node-termination-handler/
8298
8399# Queue Processor Mode
84- $BUILD_DIR /helm template aws-node-termination-handler \
100+ $HELM template aws-node-termination-handler \
85101 --namespace $NAMESPACE \
102+ --kube-version ${K8S_VERSION} \
86103 --set enableSqsTerminationDraining=" true" \
87104 --set enableProbesServer=" true" \
88105 --output-dir $QP_INDV_RESOURCES_DIR / \
0 commit comments