Skip to content

Commit e16065c

Browse files
authored
Kube version helm (#190)
* fix kube version retrieval in helm template helpers * add helm lint test * change kube-version retrieval on emtp
1 parent b6cbb2a commit e16065c

File tree

7 files changed

+65
-15
lines changed

7 files changed

+65
-15
lines changed

.travis.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,20 @@ jobs:
2323
script: make unit-test
2424
name: Unit Tests
2525
after_success: bash <(curl -s https://codecov.io/bash) -v
26+
- stage: Test
27+
script: make helm-lint
28+
name: Helm v2 and v3 Lint
2629
- stage: Test
2730
script: test/go-report-card-test/run-report-card-test.sh
2831
name: Go Report Card Test
2932
- stage: Test
30-
script: make create-build-dir build-binaries
33+
script: make build-binaries
3134
name: Build Binaries
3235
- stage: Test
33-
script: make create-build-dir build-docker-images
36+
script: make build-docker-images
3437
name: Build Docker Images
3538
- stage: Test
36-
script: make create-build-dir generate-k8s-yaml
39+
script: make generate-k8s-yaml
3740
name: Generate K8s yaml files
3841
- stage: Test
3942
if: type = push AND env(GITHUB_TOKEN) IS present

Makefile

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ MAKEFILE_PATH = $(dir $(realpath -s $(firstword $(MAKEFILE_LIST))))
1111
BUILD_DIR_PATH = ${MAKEFILE_PATH}/build
1212
SUPPORTED_PLATFORMS ?= "linux/amd64,linux/arm64,linux/arm"
1313

14+
$(shell mkdir -p ${BUILD_DIR_PATH} && touch ${BUILD_DIR_PATH}/_go.mod)
15+
1416
compile:
1517
@echo ${MAKEFILE_PATH}
1618
go build -a -tags nth${GOOS} -o ${BUILD_DIR_PATH}/node-termination-handler ${MAKEFILE_PATH}/cmd/node-termination-handler.go
1719

18-
create-build-dir:
19-
mkdir -p ${BUILD_DIR_PATH}
20-
2120
clean:
2221
rm -rf ${BUILD_DIR_PATH}/
2322

@@ -65,6 +64,9 @@ helm-sync-test:
6564
helm-version-sync-test:
6665
${MAKEFILE_PATH}/test/helm-sync-test/run-helm-version-sync-test
6766

67+
helm-lint:
68+
${MAKEFILE_PATH}/test/helm/helm-lint
69+
6870
build-binaries:
6971
${MAKEFILE_PATH}/scripts/build-binaries -p ${SUPPORTED_PLATFORMS} -v ${VERSION}
7072

@@ -77,17 +79,17 @@ generate-k8s-yaml:
7779
sync-readme-to-dockerhub:
7880
${MAKEFILE_PATH}/scripts/sync-readme-to-dockerhub
7981

80-
unit-test: create-build-dir
82+
unit-test:
8183
go test -bench=. ${MAKEFILE_PATH}/... -v -coverprofile=coverage.txt -covermode=atomic -outputdir=${BUILD_DIR_PATH}
8284

8385
unit-test-linux:
8486
${MAKEFILE_PATH}/scripts/run-unit-tests-in-docker
8587

86-
build: create-build-dir compile
88+
build: compile
8789

88-
helm-tests: helm-sync-test helm-version-sync-test
90+
helm-tests: helm-sync-test helm-version-sync-test helm-lint
8991

90-
release: create-build-dir build-binaries build-docker-images push-docker-images generate-k8s-yaml upload-resources-to-github
92+
release: build-binaries build-docker-images push-docker-images generate-k8s-yaml upload-resources-to-github
9193

9294
test: unit-test e2e-test compatibility-test license-test go-report-card-test helm-sync-test
9395

config/helm/aws-node-termination-handler/templates/_helpers.tpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ In 1.14 "beta.kubernetes.io" was deprecated and is scheduled for removal in 1.18
7171
See https://v1-14.docs.kubernetes.io/docs/setup/release/notes/#deprecations
7272
*/}}
7373
{{- define "aws-node-termination-handler.defaultNodeSelectorTermsPrefix" -}}
74-
{{- semverCompare "<1.14" .Capabilities.KubeVersion.Version | ternary "beta.kubernetes.io" "kubernetes.io" -}}
74+
{{- $k8sVersion := printf "%s.%s" .Capabilities.KubeVersion.Major .Capabilities.KubeVersion.Minor -}}
75+
{{- semverCompare "<1.14" $k8sVersion | ternary "beta.kubernetes.io" "kubernetes.io" -}}
7576
{{- end -}}
7677

7778
{{/*

config/helm/ec2-metadata-test-proxy/templates/daemonset.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{{- if .Values.ec2MetadataTestProxy.create -}}
22
{{- $isWindows := (contains "windows" .Values.targetNodeOs) -}}
3-
{{- $osSelector := (semverCompare "<1.14" .Capabilities.KubeVersion.Version | ternary "beta.kubernetes.io/os" "kubernetes.io/os") -}}
3+
{{- $k8sVersion := printf "%s.%s" .Capabilities.KubeVersion.Major .Capabilities.KubeVersion.Minor -}}
4+
{{- $osSelector := (semverCompare "<1.14" $k8sVersion | ternary "beta.kubernetes.io/os" "kubernetes.io/os") -}}
45
apiVersion: apps/v1
56
kind: DaemonSet
67
metadata:

config/helm/ec2-metadata-test-proxy/templates/regular-pod-test.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{{- if .Values.regularPodTest.create -}}
22
{{- $isWindows := (contains "windows" .Values.targetNodeOs) -}}
3-
{{- $osSelector := (semverCompare "<1.14" .Capabilities.KubeVersion.Version | ternary "beta.kubernetes.io/os" "kubernetes.io/os") -}}
3+
{{- $k8sVersion := printf "%s.%s" .Capabilities.KubeVersion.Major .Capabilities.KubeVersion.Minor -}}
4+
{{- $osSelector := (semverCompare "<1.14" $k8sVersion | ternary "beta.kubernetes.io/os" "kubernetes.io/os") -}}
45
apiVersion: apps/v1
56
kind: Deployment
67
metadata:

scripts/generate-k8s-yaml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@ EOM
2626
)
2727

2828
# Process our input arguments
29-
while getopts "n:" opt; do
29+
while getopts "vn:" opt; do
3030
case ${opt} in
3131
n ) # K8s namespace
3232
NAMESPACE=$OPTARG
3333
;;
34+
v ) # Verbose
35+
set -x
36+
;;
3437
\? )
35-
echoerr "$USAGE" 1>&2
38+
echo "$USAGE" 1>&2
3639
exit
3740
;;
3841
esac

test/helm/helm-lint

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
5+
TMP_DIR="$SCRIPTPATH/../../build"
6+
PLATFORM=$(uname | tr '[:upper:]' '[:lower:]')
7+
HELM3_VERSION="3.2.4"
8+
HELM2_VERSION="2.16.9"
9+
10+
mkdir -p $TMP_DIR
11+
12+
if [ ! -x "$TMP_DIR/helm" ]; then
13+
echo "🥑 Downloading the \"helm3\" binary"
14+
curl -L https://get.helm.sh/helm-v$HELM3_VERSION-$PLATFORM-amd64.tar.gz | tar zxf - -C $TMP_DIR
15+
mv $TMP_DIR/$PLATFORM-amd64/helm $TMP_DIR/.
16+
chmod +x $TMP_DIR/helm
17+
echo "👍 Downloaded the \"helm\" binary"
18+
fi
19+
20+
if [ ! -x "$TMP_DIR/helm2" ]; then
21+
echo "🥑 Downloading the \"helm2\" binary"
22+
curl -L https://get.helm.sh/helm-v$HELM2_VERSION-$PLATFORM-amd64.tar.gz | tar zxf - -C $TMP_DIR
23+
mv $TMP_DIR/$PLATFORM-amd64/helm $TMP_DIR/helm2
24+
chmod +x $TMP_DIR/helm2
25+
echo "👍 Downloaded the \"helm2\" binary"
26+
fi
27+
export PATH=$TMP_DIR:$PATH
28+
29+
echo "=============================================================================="
30+
echo " Linting Helm Chart w/ Helm v3"
31+
echo "=============================================================================="
32+
helm lint $SCRIPTPATH/../../config/helm/aws-node-termination-handler/
33+
34+
echo "=============================================================================="
35+
echo " Linting Helm Chart w/ Helm v2"
36+
echo "=============================================================================="
37+
helm2 lint $SCRIPTPATH/../../config/helm/aws-node-termination-handler/
38+
39+
echo "✅ Helm Linting for v2 and v3 have successfully completed!"

0 commit comments

Comments
 (0)