diff options
Diffstat (limited to 'kud/tests/nfd.sh')
-rwxr-xr-x | kud/tests/nfd.sh | 105 |
1 files changed, 80 insertions, 25 deletions
diff --git a/kud/tests/nfd.sh b/kud/tests/nfd.sh index abf9f92b..1fb0f60e 100755 --- a/kud/tests/nfd.sh +++ b/kud/tests/nfd.sh @@ -18,7 +18,10 @@ rm -f $HOME/*.yaml pod_name=nfd-pod install_deps -cat << POD > $HOME/$pod_name.yaml + +function create_pod_yaml_with_affinity { + +cat << POD > $HOME/$pod_name-affinity.yaml apiVersion: v1 kind: Pod metadata: @@ -33,10 +36,52 @@ spec: operator: Gt values: - '3' + - matchExpressions: + - key: "feature.node.kubernetes.io/kernel-version.major" + operator: Lt + values: + - '20' + - matchExpressions: + - key: "feature.node.kubernetes.io/kernel-version.major" + operator: In + values: + - '3' + - '4' + - '5' + - matchExpressions: + - key: "feature.node.kubernetes.io/kernel-version.major" + operator: NotIn + values: + - '1' + - matchExpressions: + - key: "feature.node.kubernetes.io/kernel-version.major" + operator: Exists + - matchExpressions: + - key: "feature.node.kubernetes.io/label_does_not_exist" + operator: DoesNotExist containers: - name: with-node-affinity image: gcr.io/google_containers/pause:2.0 POD +} + +function create_pod_yaml_with_nodeSelector { + +cat << POD > $HOME/$pod_name-nodeSelector.yaml +apiVersion: v1 +kind: Pod +metadata: + name: $pod_name +spec: + nodeSelector: + feature.node.kubernetes.io/kernel-version.major: '4' + containers: + - name: with-node-affinity + image: gcr.io/google_containers/pause:2.0 +POD + +} + if $(kubectl version &>/dev/null); then labels=$(kubectl get nodes -o json | jq .items[].metadata.labels) @@ -44,30 +89,40 @@ if $(kubectl version &>/dev/null); then if [[ $labels != *"kubernetes.io"* ]]; then exit 1 fi - kubectl delete pod $pod_name --ignore-not-found=true --now - while kubectl get pod $pod_name &>/dev/null; do - sleep 5 - done - kubectl create -f $HOME/$pod_name.yaml --validate=false - for pod in $pod_name; do - status_phase="" - while [[ $status_phase != "Running" ]]; do - new_phase=$(kubectl get pods $pod | awk 'NR==2{print $3}') - if [[ $new_phase != $status_phase ]]; then - echo "$(date +%H:%M:%S) - $pod : $new_phase" - status_phase=$new_phase - fi - - if [[ $new_phase == "Running" ]]; then - echo " Test is complete.." - fi - if [[ $new_phase == "Err"* ]]; then - exit 1 - fi + + create_pod_yaml_with_affinity + create_pod_yaml_with_nodeSelector + + for podType in ${POD_TYPE:-nodeSelector affinity}; do + + kubectl delete pod $pod_name --ignore-not-found=true --now + while kubectl get pod $pod_name &>/dev/null; do + sleep 5 done - done - kubectl delete pod $pod_name - while kubectl get pod $pod_name &>/dev/null; do - sleep 5 + + kubectl create -f $HOME/$pod_name-$podType.yaml --validate=false + + for pod in $pod_name; do + status_phase="" + while [[ $status_phase != "Running" ]]; do + new_phase=$(kubectl get pods $pod | awk 'NR==2{print $3}') + if [[ $new_phase != $status_phase ]]; then + echo "$(date +%H:%M:%S) - $pod-$podType : $new_phase" + status_phase=$new_phase + fi + + if [[ $new_phase == "Running" ]]; then + echo " Test is complete.." + fi + if [[ $new_phase == "Err"* ]]; then + exit 1 + fi + done + done + kubectl delete pod $pod_name + while kubectl get pod $pod_name &>/dev/null; do + sleep 5 + done + done fi |