X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=tests%2Fk8s%2Fconformance%2Fconformance.robot;h=c51f217a6098ac29be5a752b3efdd94ae1de9e12;hb=528222a0d0fff5208e298548a567f3a63ef4358a;hp=0d0c00255eddd9995021376ccdc581b6906bc248;hpb=49217bce754b187bf41208e6dc52112d3f2ba962;p=validation.git diff --git a/tests/k8s/conformance/conformance.robot b/tests/k8s/conformance/conformance.robot index 0d0c002..c51f217 100644 --- a/tests/k8s/conformance/conformance.robot +++ b/tests/k8s/conformance/conformance.robot @@ -24,8 +24,10 @@ Library Collections Library String Library SSHLibrary Library Process +Library JSONLibrary Test Setup Run Keywords ... Check that k8s cluster is reachable +... Define Images ... Onboard Images ... Create Manifest File Test Teardown Run Keywords @@ -36,9 +38,9 @@ Test Teardown Run Keywords ${LOG} ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}.log &{SONOBUOY} path=gcr.io/heptio-images -... name=sonobuoy:v0.15.1 +... name=sonobuoy:v0.16.1 &{E2E} path=akraino -... name=validation:kube-conformance-v1.15 +... name=Actual value set dynamically &{SYSTEMD_LOGS} path=akraino ... name=validation:sonobuoy-plugin-systemd-logs-latest &{SONOBUOY_IMGS} sonobuoy=&{SONOBUOY} @@ -50,18 +52,28 @@ ${DNS_DOMAIN_TESTS} SEPARATOR= ... DNS should provide /etc/hosts entries for the cluster| ... DNS should provide DNS for services| ... DNS should provide DNS for ExternalName services| -... DNS should provide DNS for the cluster +... DNS should provide DNS for the cluster| +... DNS should provide DNS for pods for Subdomain| +... DNS should provide DNS for pods for Hostname + +# Images listed by Sonobuoy but not available for downloading +@{SKIP_IMGS} gcr.io/kubernetes-e2e-test-images/windows-nanoserver:v1 +... gcr.io/authenticated-image-pulling/windows-nanoserver:v1 +... gcr.io/authenticated-image-pulling/alpine:3.7 +... k8s.gcr.io/invalid-image:invalid-tag +... invalid.com/invalid/alpine:3.1 *** Test Cases *** Run Sonobuoy Conformance Test # Start the test Run kubectl apply -f ${CURDIR}${/}sonobuoy.yaml - Sleep 10s + Sleep 20s ${rc} ${output}= Run And Return Rc And Output - ... kubectl describe pod/sonobuoy -n heptio-sonobuoy + ... kubectl describe pod/sonobuoy -n sonobuoy Append To File ${LOG} ${output}${\n} # Wait until the test finishes execution + Wait Until Keyword Succeeds 3x 20 sec Check that sonobuoy is running Run while sonobuoy status | grep "Sonobuoy is still running"; do sleep 180; done Append To File ${LOG} "Sonobuoy has completed"${\n} @@ -78,9 +90,13 @@ Check that k8s cluster is reachable # Make sure the pod is reachable with the local k8s client ${rc} ${output}= Run And Return Rc And Output - ... kubectl get pods --all-namespaces + ... kubectl version Append To File ${LOG} ${output}${\n} - Should Contain ${output} kube-system + Should Contain ${output} Server Version: version.Info + +Check that sonobuoy is running + ${output}= Run kubectl get pod sonobuoy --namespace sonobuoy + Should Contain ${output} Running Cleanup Sonobuoy ${rc} ${output}= Run And Return Rc And Output @@ -121,10 +137,21 @@ Onboard Kubernetes e2e Test Images Should Be Equal As Integers ${result.rc} 0 @{images}= Split String ${result.stdout} FOR ${img} IN @{images} + Continue For Loop If $img in $SKIP_IMGS ${path} ${name} Split String From Right ${img} / 1 Upload To Internal Registry ${path} ${name} END +Define Images + ${result}= Run Process kubectl version -o json + Should Be Equal As Integers ${result.rc} 0 + ${versions}= Convert String To JSON ${result.stdout} + ${major}= Get Value From Json ${versions} $.serverVersion.major + ${minor}= Get Value From Json ${versions} $.serverVersion.minor + ${major}= Get Regexp Matches ${major[0]} \\d+ + ${minor}= Get Regexp Matches ${minor[0]} \\d+ + Set To Dictionary ${SONOBUOY_IMGS['e2e']} name=validation:kube-conformance-v${major[0]}.${minor[0]} + Onboard Images ${INT_REG}= Get Variable Value ${INTERNAL_REGISTRY} ${EMPTY} Set Test Variable ${INT_REG}