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