2
2
set -euo pipefail
3
3
4
4
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
5
-
6
- PLATFORM=$(uname | tr '[:upper:]' '[:lower:]')
7
- HELM_VERSION="3.7.1"
8
- NAMESPACE="kube-system"
9
-
10
5
MAKEFILEPATH=$SCRIPTPATH/../Makefile
11
6
VERSION=$(make -s -f $MAKEFILEPATH version)
12
7
BUILD_DIR=$SCRIPTPATH/../build/k8s-resources/$VERSION
13
8
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=""
23
14
24
- USAGE=$(cat << ' EOM'
15
+ USAGE=$(cat << EOM
25
16
Usage: generate-k8s-yaml [-n <K8s_NAMESPACE>]
26
17
Generates the kubernetes yaml resource files from the helm chart
27
18
and places them into the build dir.
28
19
Example: generate-k8s-yaml -n kube-system
29
20
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
31
25
EOM
32
26
)
33
27
34
28
# Process our input arguments
35
- while getopts "vn: " opt; do
29
+ while getopts "n:k:s:v " opt; do
36
30
case ${opt} in
37
31
n ) # K8s namespace
38
32
NAMESPACE=$OPTARG
39
33
;;
34
+ k ) # K8s version
35
+ K8S_VERSION=$OPTARG
36
+ ;;
37
+ s ) # Suffix
38
+ SUFFIX=$OPTARG
39
+ ;;
40
40
v ) # Verbose
41
41
set -x
42
42
;;
@@ -47,20 +47,35 @@ while getopts "vn:" opt; do
47
47
esac
48
48
done
49
49
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
54
67
55
68
## IMDS Mode
56
- $BUILD_DIR/helm template aws-node-termination-handler \
69
+ $HELM template aws-node-termination-handler \
57
70
--namespace $NAMESPACE \
71
+ --kube-version ${K8S_VERSION} \
58
72
--set targetNodeOs="linux windows" \
59
73
$SCRIPTPATH/../config/helm/aws-node-termination-handler/ > $AGG_RESOURCES_YAML
60
74
61
75
## Queue Processor Mode
62
- $BUILD_DIR/helm template aws-node-termination-handler \
76
+ $HELM template aws-node-termination-handler \
63
77
--namespace $NAMESPACE \
78
+ --kube-version ${K8S_VERSION} \
64
79
--set enableSqsTerminationDraining="true" \
65
80
--set enableProbesServer="true" \
66
81
$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
74
89
mv $BUILD_DIR/helm_annotations_removed.yaml $QP_AGG_RESOURCES_YAML
75
90
76
91
# IMDS Mode
77
- $BUILD_DIR/helm template aws-node-termination-handler \
92
+ $HELM template aws-node-termination-handler \
78
93
--namespace $NAMESPACE \
94
+ --kube-version ${K8S_VERSION} \
79
95
--set targetNodeOs="linux windows" \
80
96
--output-dir $INDV_RESOURCES_DIR/ \
81
97
$SCRIPTPATH/../config/helm/aws-node-termination-handler/
82
98
83
99
# Queue Processor Mode
84
- $BUILD_DIR/helm template aws-node-termination-handler \
100
+ $HELM template aws-node-termination-handler \
85
101
--namespace $NAMESPACE \
102
+ --kube-version ${K8S_VERSION} \
86
103
--set enableSqsTerminationDraining="true" \
87
104
--set enableProbesServer="true" \
88
105
--output-dir $QP_INDV_RESOURCES_DIR/ \
0 commit comments