Fix Sonobuoy systemd-image for k8 1.18
[validation.git] / tests / k8s / conformance / conformance.robot
index 0d0c002..ffffd77 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
@@ -35,33 +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 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 +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
@@ -121,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}
@@ -158,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}