X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;f=tests%2Fk8s%2Fconformance%2Fconformance.robot;h=ffffd7782d9019e10000d96b8f5e306a99e2fe10;hb=HEAD;hp=9418772ed0ae2546e6eac5537168fc2908ff08dc;hpb=bcfe962f40d0ed2697bc3c6bdc56c89f163bb812;p=validation.git diff --git a/tests/k8s/conformance/conformance.robot b/tests/k8s/conformance/conformance.robot index 9418772..ffffd77 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 @@ -35,26 +37,40 @@ Test Teardown Run Keywords *** Variables *** ${LOG} ${LOG_PATH}${/}${SUITE_NAME.replace(' ','_')}.log -&{SONOBUOY} path=gcr.io/heptio-images -... name=sonobuoy:v0.15.1 -&{E2E} path=akraino -... name=validation:kube-conformance-v1.15 -&{SYSTEMD_LOGS} path=akraino -... name=validation:sonobuoy-plugin-systemd-logs-latest +&{SONOBUOY} path=sonobuoy +... name=sonobuoy:v0.18.2 +&{E2E} path=k8s.gcr.io +... name=Actual value set dynamically &{SONOBUOY_IMGS} sonobuoy=&{SONOBUOY} ... e2e=&{E2E} -... systemd_logs=&{SYSTEMD_LOGS} + +# Following tests assume DNS domain is "cluster.local" +${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 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} @@ -71,9 +87,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 @@ -114,10 +134,18 @@ 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} + ${gitVersion}= Get Value From Json ${versions} $.serverVersion.gitVersion + Set To Dictionary ${SONOBUOY_IMGS['e2e']} name=conformance:${gitVersion[0]} + Onboard Images ${INT_REG}= Get Variable Value ${INTERNAL_REGISTRY} ${EMPTY} Set Test Variable ${INT_REG} @@ -126,10 +154,19 @@ Onboard Images Onboard Sonobuoy Images Onboard Kubernetes e2e Test Images +Get Tests To Skip + ${flag}= Set Variable Aggregator|Alpha|\\[(Disruptive|Feature:[^\\]]+|Flaky)\\] + ${flag}= Run Keyword If '${DNS_DOMAIN}' != 'cluster.local' + ... Catenate SEPARATOR=| ${flag} ${DNS_DOMAIN_TESTS} + ... ELSE + ... Set Variable ${flag} + [Return] ${flag} + Create Manifest File + ${skip}= Get Tests To Skip @{flags}= Set Variable ... --e2e-focus \\[Conformance\\\] - ... --e2e-skip Aggregator|Alpha|\\[(Disruptive|Feature:[^\\]]+|Flaky)\\] + ... --e2e-skip ${skip} ... --kube-conformance-image ${SONOBUOY_IMGS.e2e.path}/${SONOBUOY_IMGS.e2e.name} ... --sonobuoy-image ${SONOBUOY_IMGS.sonobuoy.path}/${SONOBUOY_IMGS.sonobuoy.name} ... --image-pull-policy Always @@ -142,7 +179,4 @@ Create Manifest File ... ${CURDIR}${/}custom_repos.yaml ${result}= Run Process sonobuoy gen @{flags} Should Be Equal As Integers ${result.rc} 0 - ${manifest}= Replace String ${result.stdout} - ... image: gcr.io/heptio-images/sonobuoy-plugin-systemd-logs:latest - ... image: ${SONOBUOY_IMGS.systemd_logs.path}/${SONOBUOY_IMGS.systemd_logs.name} - Create File ${CURDIR}${/}sonobuoy.yaml ${manifest} + Create File ${CURDIR}${/}sonobuoy.yaml ${result.stdout}