mirror of
https://github.com/kubernetes-sigs/descheduler.git
synced 2026-01-28 06:29:29 +01:00
introduce ct for local helm install test
This commit is contained in:
3
.github/workflows/helm.yaml
vendored
3
.github/workflows/helm.yaml
vendored
@@ -49,8 +49,7 @@ jobs:
|
|||||||
|
|
||||||
# Need a multi node cluster so descheduler runs until evictions
|
# Need a multi node cluster so descheduler runs until evictions
|
||||||
- name: Create multi node Kind cluster
|
- name: Create multi node Kind cluster
|
||||||
run: |
|
run: make kind-multi-node
|
||||||
kind create cluster --name kind --config ./hack/kind_config.yaml --wait 2m
|
|
||||||
|
|
||||||
# helm-extra-set-args only available after ct 3.6.0
|
# helm-extra-set-args only available after ct 3.6.0
|
||||||
- name: Run chart-testing (install)
|
- name: Run chart-testing (install)
|
||||||
|
|||||||
3
Makefile
3
Makefile
@@ -153,3 +153,6 @@ test-helm: ensure-helm-install
|
|||||||
|
|
||||||
kind-multi-node:
|
kind-multi-node:
|
||||||
kind create cluster --name kind --config ./hack/kind_config.yaml --wait 2m
|
kind create cluster --name kind --config ./hack/kind_config.yaml --wait 2m
|
||||||
|
|
||||||
|
ct-helm:
|
||||||
|
./hack/verify-chart.sh
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: descheduler-test-pod
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
annotations:
|
|
||||||
"helm.sh/hook": test
|
|
||||||
spec:
|
|
||||||
restartPolicy: Never
|
|
||||||
serviceAccountName: descheduler-ci
|
|
||||||
containers:
|
|
||||||
- name: descheduler-test-container
|
|
||||||
image: alpine:latest
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- All
|
|
||||||
privileged: false
|
|
||||||
runAsNonRoot: false
|
|
||||||
command: ["/bin/ash"]
|
|
||||||
args:
|
|
||||||
- -c
|
|
||||||
- >-
|
|
||||||
apk --no-cache add curl &&
|
|
||||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl &&
|
|
||||||
chmod +x ./kubectl &&
|
|
||||||
mv ./kubectl /usr/local/bin/kubectl &&
|
|
||||||
/usr/local/bin/kubectl get pods --namespace {{ .Release.Namespace }} --token "$(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | grep "descheduler" | grep "Completed"
|
|
||||||
@@ -39,18 +39,6 @@ make test-unit
|
|||||||
make test-e2e
|
make test-e2e
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run Helm Tests
|
|
||||||
Run the helm test for a particular descheduler release by setting below variables,
|
|
||||||
```
|
|
||||||
HELM_IMAGE_REPO="descheduler"
|
|
||||||
HELM_IMAGE_TAG="helm-test"
|
|
||||||
HELM_CHART_LOCATION="./charts/descheduler"
|
|
||||||
```
|
|
||||||
The helm tests runs as part of descheduler CI. But, to run it manually from the descheduler root,
|
|
||||||
|
|
||||||
```
|
|
||||||
make test-helm
|
|
||||||
```
|
|
||||||
|
|
||||||
## Build Helm Package locally
|
## Build Helm Package locally
|
||||||
|
|
||||||
@@ -68,5 +56,15 @@ To check linting of your changes in the helm chart locally you can run:
|
|||||||
make lint-helm
|
make lint-helm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Test helm changes locally with kind and ct
|
||||||
|
|
||||||
|
You will need kind and docker (or equivalent) installed. We can use ct public image to avoid installing ct and all its dependencies.
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
make kind-multi-node
|
||||||
|
make ct-helm
|
||||||
|
```
|
||||||
|
|
||||||
### Miscellaneous
|
### Miscellaneous
|
||||||
See the [hack directory](https://github.com/kubernetes-sigs/descheduler/tree/master/hack) for additional tools and scripts used for developing the descheduler.
|
See the [hack directory](https://github.com/kubernetes-sigs/descheduler/tree/master/hack) for additional tools and scripts used for developing the descheduler.
|
||||||
|
|||||||
1
hack/verify-chart.sh
Executable file
1
hack/verify-chart.sh
Executable file
@@ -0,0 +1 @@
|
|||||||
|
docker run -it --rm --network host --workdir=/data --volume ~/.kube/config:/root/.kube/config:ro --volume $(pwd):/data quay.io/helmpack/chart-testing:v3.7.0 /bin/bash -c "git config --global --add safe.directory /data; ct install --config=.github/ci/ct.yaml --helm-extra-set-args=\"--set=kind=Deployment --set=podSecurityPolicy.create=false\""
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2021 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
K8S_VERSION=${KUBERNETES_VERSION:-v1.24.0}
|
|
||||||
IMAGE_REPO=${HELM_IMAGE_REPO:-descheduler}
|
|
||||||
IMAGE_TAG=${HELM_IMAGE_TAG:-helm-test}
|
|
||||||
CHART_LOCATION=${HELM_CHART_LOCATION:-./charts/descheduler}
|
|
||||||
VERSION=helm-test make image
|
|
||||||
wget https://github.com/kubernetes-sigs/kind/releases/download/v0.13.0/kind-linux-amd64
|
|
||||||
chmod +x kind-linux-amd64
|
|
||||||
mv kind-linux-amd64 kind
|
|
||||||
export PATH=$PATH:$PWD
|
|
||||||
kind create cluster --image kindest/node:"${K8S_VERSION}" --config=./hack/kind_config.yaml
|
|
||||||
kind load docker-image descheduler:helm-test
|
|
||||||
helm install descheduler-ci --set image.repository="${IMAGE_REPO}",image.tag="${IMAGE_TAG}",schedule="* * * * *" --namespace kube-system "${CHART_LOCATION}"
|
|
||||||
sleep 61 # sleep until Job is triggered
|
|
||||||
helm test descheduler-ci --namespace kube-system
|
|
||||||
|
|
||||||
# Delete kind cluster once test is finished
|
|
||||||
kind delete cluster
|
|
||||||
Reference in New Issue
Block a user