Select kube-conformance version dynamically
[validation.git] / tests / k8s / conformance / conformance.robot
index 0d0c002..d0da9c6 100644 (file)
@@ -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,15 +52,24 @@ ${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
@@ -78,9 +89,9 @@ 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
 
 Cleanup Sonobuoy
         ${rc}  ${output}=       Run And Return Rc And Output
@@ -121,10 +132,19 @@ 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
+        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}