kubernetes-retired / service-catalog

Consume services in Kubernetes using the Open Service Broker API
https://svc-cat.io
Apache License 2.0
1.05k stars 385 forks source link

Observed new flake in Jenkins (test_walkthrough.sh) #673

Closed pmorie closed 7 years ago

pmorie commented 7 years ago

I haven't seen this one before, and it's not clear to me yet what the failed assertion is, but it appears to come from test_walkthrough.sh (https://service-catalog-jenkins.appspot.com/job/service-catalog-PR-testing2/203/console). We should make it easier to understand where the failure in this script originates

``` + /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh --registry gcr.io/service-catalog-jenkins-jobs/catalog/ --cleanup +++ dirname /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh ++ cd /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/../.. ++ pwd + ROOT=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog + . /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/utilities.sh + [[ 3 -gt 0 ]] + case "${1}" in + REGISTRY=gcr.io/service-catalog-jenkins-jobs/catalog/ + shift + shift + [[ 1 -gt 0 ]] + case "${1}" in + CLEANUP=1 + shift + [[ 0 -gt 0 ]] + BROKER_RELEASE=ups-broker + CATALOG_RELEASE=catalog + K8S_KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + SC_KUBECONFIG=/tmp/sc-kubeconfig ++ git describe --tags --always --abbrev=7 --dirty + VERSION=v0.0.1-47-g34de986 + REGISTRY=gcr.io/service-catalog-jenkins-jobs/catalog/ + [[ -n 1 ]] + trap cleanup EXIT + kubectl create namespace test-ns namespace "test-ns" created + echo 'Deploying user-provided-service broker...' Deploying user-provided-service broker... + retry -n 10 helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + shift 2 + [[ 7 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing helm' install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker 1. Executing helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker + helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker NAME: ups-broker LAST DEPLOYED: Sat Apr 8 01:17:16 2017 NAMESPACE: ups-broker STATUS: DEPLOYED RESOURCES: ==> v1/Service NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE ups-broker-ups-broker 10.15.255.48 80/TCP 1s ==> extensions/v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE ups-broker-ups-broker 1 1 1 0 1s + echo 'Command succeeded.' Command succeeded. + return 0 + echo 'Deploying service catalog...' Deploying service catalog... + VALUES=debug=true + VALUES+=,insecure=true + VALUES+=,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986 + VALUES+=,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986 + VALUES+=,apiserver.service.type=LoadBalancer + [[ -n '' ]] + retry -n 10 helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + shift 2 + [[ 9 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing helm' install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer 1. Executing helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer + helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer NAME: catalog LAST DEPLOYED: Sat Apr 8 01:17:17 2017 NAMESPACE: catalog STATUS: DEPLOYED RESOURCES: ==> v1/Secret NAME TYPE DATA AGE catalog-catalog-apiserver-cert Opaque 2 1s ==> v1/Service NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 80:31697/TCP,443:30681/TCP 1s ==> extensions/v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE catalog-catalog-controller-manager 1 1 1 0 1s catalog-catalog-apiserver 1 1 1 0 1s + echo 'Command succeeded.' Command succeeded. + return 0 + echo 'Waiting on pods to come up...' Waiting on pods to come up... + wait_for_expected_output -x -e ContainerCreating -n 10 kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-djjgx 0/1 ContainerCreating 0 2s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-djjgx 0/1 ContainerCreating 0 7s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 7 seconds.' + sleep 7 + (( N++ )) + : + echo '3. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-djjgx 0/1 ContainerCreating 0 14s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 11 seconds.' + sleep 11 + (( N++ )) + : + echo '4. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-djjgx 0/1 Running 0 25s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get pods --namespace ups-broker ++ grep ups-broker-ups-broker ++ awk '{print $3}' + [[ Running == \R\u\n\n\i\n\g ]] + wait_for_expected_output -x -e ContainerCreating -n 10 kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-2826791245-hg8b4 0/2 ContainerCreating 0 25s catalog-catalog-controller-manager-2670993970-br72d 0/1 Running 0 25s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-2826791245-hg8b4 0/2 Running 0 30s catalog-catalog-controller-manager-2670993970-br72d 0/1 Running 0 30s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get pods --namespace catalog ++ grep catalog-catalog-apiserver ++ awk '{print $3}' + [[ Running == \R\u\n\n\i\n\g ]] ++ kubectl get pods --namespace catalog ++ grep catalog-catalog-controller ++ awk '{print $3}' + [[ Running == \R\u\n\n\i\n\g ]] + echo 'Waiting on external IP for service catalog API Server...' Waiting on external IP for service catalog API Server... + wait_for_expected_output -x -e pending -n 10 kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=pending + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e pending kubectl get services --namespace catalog + output_does_not_contain_substring -e pending kubectl get services --namespace catalog + output_contains_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=pending + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get services --namespace catalog + [[ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 80:31697/TCP,443:30681/TCP 30s == *\p\e\n\d\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e pending kubectl get services --namespace catalog + output_does_not_contain_substring -e pending kubectl get services --namespace catalog + output_contains_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=pending + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get services --namespace catalog + [[ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 80:31697/TCP,443:30681/TCP 35s == *\p\e\n\d\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 7 seconds.' + sleep 7 + (( N++ )) + : + echo '3. Executing output_does_not_contain_substring' -e pending kubectl get services --namespace catalog + output_does_not_contain_substring -e pending kubectl get services --namespace catalog + output_contains_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=pending + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get services --namespace catalog + [[ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 80:31697/TCP,443:30681/TCP 42s == *\p\e\n\d\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 11 seconds.' + sleep 11 + (( N++ )) + : + echo '4. Executing output_does_not_contain_substring' -e pending kubectl get services --namespace catalog + output_does_not_contain_substring -e pending kubectl get services --namespace catalog + output_contains_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=pending + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get services --namespace catalog + [[ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 80:31697/TCP,443:30681/TCP 53s == *\p\e\n\d\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 16 seconds.' + sleep 16 + (( N++ )) + : + echo '5. Executing output_does_not_contain_substring' -e pending kubectl get services --namespace catalog + output_does_not_contain_substring -e pending kubectl get services --namespace catalog + output_contains_substring -e pending kubectl get services --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=pending + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get services --namespace catalog + [[ NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.247.77 35.185.252.174 80:31697/TCP,443:30681/TCP 1m == *\p\e\n\d\i\n\g* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 + echo 'Connecting to service catalog API Server...' Connecting to service catalog API Server... ++ kubectl get services -n catalog ++ grep apiserver ++ awk '{print $3}' + API_SERVER_HOST=35.185.252.174 + [[ 35.185.252.174 =~ ^[0-9.]*$ ]] + export KUBECONFIG=/tmp/sc-kubeconfig + KUBECONFIG=/tmp/sc-kubeconfig + kubectl config set-credentials service-catalog-creds --username=admin --password=admin User "service-catalog-creds" set. + kubectl config set-cluster service-catalog-cluster --server=http://35.185.252.174:80 Cluster "service-catalog-cluster" set. + kubectl config set-context service-catalog-ctx --cluster=service-catalog-cluster --user=service-catalog-creds Context "service-catalog-ctx" set. + kubectl config use-context service-catalog-ctx Switched to context "service-catalog-ctx". + retry -n 10 kubectl get brokers,serviceclasses,instances,bindings + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + shift 2 + [[ 3 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing kubectl' get brokers,serviceclasses,instances,bindings 1. Executing kubectl get brokers,serviceclasses,instances,bindings + kubectl get brokers,serviceclasses,instances,bindings No resources found. + echo 'Command succeeded.' Command succeeded. + return 0 + echo 'Creating broker...' Creating broker... + kubectl create -f /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/walkthrough/ups-broker.yaml broker "ups-broker" created + wait_for_expected_output -e FetchedCatalog -n 10 kubectl get brokers ups-broker -o yaml + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=FetchedCatalog + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 4 + [[ 6 -le 0 ]] + [[ -n '' ]] + retry -n 10 -s 5 -t 60 output_contains_substring -e FetchedCatalog kubectl get brokers ups-broker -o yaml + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 9 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_contains_substring' -e FetchedCatalog kubectl get brokers ups-broker -o yaml + output_contains_substring -e FetchedCatalog kubectl get brokers ups-broker -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=FetchedCatalog + getopts :e: ARG + shift 2 + [[ 6 -le 0 ]] ++ kubectl get brokers ups-broker -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Broker metadata: creationTimestamp: 2017-04-08T01:18:38Z finalizers: - kubernetes name: ups-broker resourceVersion: "2" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/brokersups-broker uid: 4bbdae74-1bf9-11e7-be4b-0a580a0c0106 spec: url: http://ups-broker-ups-broker.ups-broker.svc.cluster.local status: conditions: [] == *\F\e\t\c\h\e\d\C\a\t\a\l\o\g* ]] + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_contains_substring' -e FetchedCatalog kubectl get brokers ups-broker -o yaml + output_contains_substring -e FetchedCatalog kubectl get brokers ups-broker -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=FetchedCatalog + getopts :e: ARG + shift 2 + [[ 6 -le 0 ]] ++ kubectl get brokers ups-broker -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Broker metadata: creationTimestamp: 2017-04-08T01:18:38Z finalizers: - kubernetes name: ups-broker resourceVersion: "4" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/brokersups-broker uid: 4bbdae74-1bf9-11e7-be4b-0a580a0c0106 spec: url: http://ups-broker-ups-broker.ups-broker.svc.cluster.local status: conditions: - message: Successfully fetched catalog from broker. reason: FetchedCatalog status: "True" type: Ready == *\F\e\t\c\h\e\d\C\a\t\a\l\o\g* ]] + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get brokers ups-broker -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Broker metadata: creationTimestamp: 2017-04-08T01:18:38Z finalizers: - kubernetes name: ups-broker resourceVersion: "4" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/brokersups-broker uid: 4bbdae74-1bf9-11e7-be4b-0a580a0c0106 spec: url: http://ups-broker-ups-broker.ups-broker.svc.cluster.local status: conditions: - message: Successfully fetched catalog from broker. reason: FetchedCatalog status: "True" type: Ready == *\s\t\a\t\u\s\:\ \"\T\r\u\e\"* ]] ++ kubectl get serviceclasses + [[ NAME KIND user-provided-service ServiceClass.v1alpha1.servicecatalog.k8s.io == *user-provided-service* ]] + echo 'Provisioning instance...' Provisioning instance... + kubectl create -f /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/walkthrough/ups-instance.yaml instance "ups-instance" created + wait_for_expected_output -e ProvisionedSuccessfully -n 10 kubectl get instances -n test-ns ups-instance -o yaml + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=ProvisionedSuccessfully + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 4 + [[ 8 -le 0 ]] + [[ -n '' ]] + retry -n 10 -s 5 -t 60 output_contains_substring -e ProvisionedSuccessfully kubectl get instances -n test-ns ups-instance -o yaml + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 11 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_contains_substring' -e ProvisionedSuccessfully kubectl get instances -n test-ns ups-instance -o yaml + output_contains_substring -e ProvisionedSuccessfully kubectl get instances -n test-ns ups-instance -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ProvisionedSuccessfully + getopts :e: ARG + shift 2 + [[ 8 -le 0 ]] ++ kubectl get instances -n test-ns ups-instance -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Instance metadata: creationTimestamp: 2017-04-08T01:18:44Z finalizers: - kubernetes name: ups-instance namespace: test-ns resourceVersion: "6" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/instances/ups-instance uid: 4f223908-1bf9-11e7-be4b-0a580a0c0106 spec: osbGuid: 997a1ac6-fdb1-4878-acc0-69aa9b49565d planName: default serviceClassName: user-provided-service status: conditions: [] == *\P\r\o\v\i\s\i\o\n\e\d\S\u\c\c\e\s\s\f\u\l\l\y* ]] + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_contains_substring' -e ProvisionedSuccessfully kubectl get instances -n test-ns ups-instance -o yaml + output_contains_substring -e ProvisionedSuccessfully kubectl get instances -n test-ns ups-instance -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ProvisionedSuccessfully + getopts :e: ARG + shift 2 + [[ 8 -le 0 ]] ++ kubectl get instances -n test-ns ups-instance -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Instance metadata: creationTimestamp: 2017-04-08T01:18:44Z finalizers: - kubernetes name: ups-instance namespace: test-ns resourceVersion: "7" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/instances/ups-instance uid: 4f223908-1bf9-11e7-be4b-0a580a0c0106 spec: checksum: 2108b0f44da7cb77aa967e3875f0c5fe7b30420fc04badcaa624b2f571e0c189 osbGuid: 997a1ac6-fdb1-4878-acc0-69aa9b49565d planName: default serviceClassName: user-provided-service status: conditions: - message: The instance was provisioned successfully reason: ProvisionedSuccessfully status: "True" type: Ready == *\P\r\o\v\i\s\i\o\n\e\d\S\u\c\c\e\s\s\f\u\l\l\y* ]] + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get instances -n test-ns ups-instance -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Instance metadata: creationTimestamp: 2017-04-08T01:18:44Z finalizers: - kubernetes name: ups-instance namespace: test-ns resourceVersion: "7" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/instances/ups-instance uid: 4f223908-1bf9-11e7-be4b-0a580a0c0106 spec: checksum: 2108b0f44da7cb77aa967e3875f0c5fe7b30420fc04badcaa624b2f571e0c189 osbGuid: 997a1ac6-fdb1-4878-acc0-69aa9b49565d planName: default serviceClassName: user-provided-service status: conditions: - message: The instance was provisioned successfully reason: ProvisionedSuccessfully status: "True" type: Ready == *\s\t\a\t\u\s\:\ \"\T\r\u\e\"* ]] + echo 'Binding to instance...' Binding to instance... + kubectl create -f /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/examples/walkthrough/ups-binding.yaml binding "ups-binding" created + wait_for_expected_output -e InjectedBindResult -n 10 kubectl get bindings -n test-ns ups-binding -o yaml + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=InjectedBindResult + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 4 + [[ 8 -le 0 ]] + [[ -n '' ]] + retry -n 10 -s 5 -t 60 output_contains_substring -e InjectedBindResult kubectl get bindings -n test-ns ups-binding -o yaml + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 11 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_contains_substring' -e InjectedBindResult kubectl get bindings -n test-ns ups-binding -o yaml + output_contains_substring -e InjectedBindResult kubectl get bindings -n test-ns ups-binding -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=InjectedBindResult + getopts :e: ARG + shift 2 + [[ 8 -le 0 ]] ++ kubectl get bindings -n test-ns ups-binding -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Binding metadata: creationTimestamp: 2017-04-08T01:18:50Z finalizers: - kubernetes name: ups-binding namespace: test-ns resourceVersion: "8" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/bindings/ups-binding uid: 526c15a5-1bf9-11e7-be4b-0a580a0c0106 spec: instanceRef: name: ups-instance osbGuid: 04e9da21-4a94-4b0e-98bd-441e024d7222 secretName: my-secret status: conditions: [] == *\I\n\j\e\c\t\e\d\B\i\n\d\R\e\s\u\l\t* ]] + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_contains_substring' -e InjectedBindResult kubectl get bindings -n test-ns ups-binding -o yaml + output_contains_substring -e InjectedBindResult kubectl get bindings -n test-ns ups-binding -o yaml + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=InjectedBindResult + getopts :e: ARG + shift 2 + [[ 8 -le 0 ]] ++ kubectl get bindings -n test-ns ups-binding -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Binding metadata: creationTimestamp: 2017-04-08T01:18:50Z finalizers: - kubernetes name: ups-binding namespace: test-ns resourceVersion: "9" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/bindings/ups-binding uid: 526c15a5-1bf9-11e7-be4b-0a580a0c0106 spec: checksum: e7b0fd10cba2f64fbfafd35d146418d7fc19429d55708348602d5e189c85d6d8 instanceRef: name: ups-instance osbGuid: 04e9da21-4a94-4b0e-98bd-441e024d7222 secretName: my-secret status: conditions: - message: Injected bind result reason: InjectedBindResult status: "True" type: Ready == *\I\n\j\e\c\t\e\d\B\i\n\d\R\e\s\u\l\t* ]] + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get bindings -n test-ns ups-binding -o yaml + [[ apiVersion: servicecatalog.k8s.io/v1alpha1 kind: Binding metadata: creationTimestamp: 2017-04-08T01:18:50Z finalizers: - kubernetes name: ups-binding namespace: test-ns resourceVersion: "9" selfLink: /apis/servicecatalog.k8s.io/v1alpha1/namespaces/test-ns/bindings/ups-binding uid: 526c15a5-1bf9-11e7-be4b-0a580a0c0106 spec: checksum: e7b0fd10cba2f64fbfafd35d146418d7fc19429d55708348602d5e189c85d6d8 instanceRef: name: ups-instance osbGuid: 04e9da21-4a94-4b0e-98bd-441e024d7222 secretName: my-secret status: conditions: - message: Injected bind result reason: InjectedBindResult status: "True" type: Ready == *\s\t\a\t\u\s\:\ \"\T\r\u\e\"* ]] ++ KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig ++ kubectl get secrets -n test-ns + [[ NAME TYPE DATA AGE default-token-hfrr1 kubernetes.io/service-account-token 3 1m my-secret Opaque 2 5s == *my-secret* ]] + [[ -z '' ]] + echo 'Unbinding from instance...' Unbinding from instance... + kubectl delete -n test-ns bindings ups-binding binding "ups-binding" deleted + export KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + wait_for_expected_output -x -e my-secret -n 10 kubectl get secrets -n test-ns + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=my-secret + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e my-secret kubectl get secrets -n test-ns + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e my-secret kubectl get secrets -n test-ns + output_does_not_contain_substring -e my-secret kubectl get secrets -n test-ns + output_contains_substring -e my-secret kubectl get secrets -n test-ns + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=my-secret + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get secrets -n test-ns + [[ NAME TYPE DATA AGE default-token-hfrr1 kubernetes.io/service-account-token 3 1m == *\m\y\-\s\e\c\r\e\t* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 + export KUBECONFIG=/tmp/sc-kubeconfig + KUBECONFIG=/tmp/sc-kubeconfig + echo 'Deprovisioning instance...' Deprovisioning instance... + kubectl delete -n test-ns instances ups-instance instance "ups-instance" deleted + echo 'Deleting broker...' Deleting broker... + kubectl delete brokers ups-broker broker "ups-broker" deleted + wait_for_expected_output -x -e user-provided-service -n 10 kubectl get serviceclasses + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=user-provided-service + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 3 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e user-provided-service kubectl get serviceclasses + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 6 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e user-provided-service kubectl get serviceclasses + output_does_not_contain_substring -e user-provided-service kubectl get serviceclasses + output_contains_substring -e user-provided-service kubectl get serviceclasses + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=user-provided-service + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get serviceclasses + [[ NAME KIND user-provided-service ServiceClass.v1alpha1.servicecatalog.k8s.io == *\u\s\e\r\-\p\r\o\v\i\d\e\d\-\s\e\r\v\i\c\e* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e user-provided-service kubectl get serviceclasses + output_does_not_contain_substring -e user-provided-service kubectl get serviceclasses + output_contains_substring -e user-provided-service kubectl get serviceclasses + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=user-provided-service + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get serviceclasses No resources found. + [[ '' == *\u\s\e\r\-\p\r\o\v\i\d\e\d\-\s\e\r\v\i\c\e* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get serviceclasses + [[ No resources found. == \N\o\ \r\e\s\o\u\r\c\e\s\ \f\o\u\n\d\. ]] + echo 'Walkthrough completed successfully.' Walkthrough completed successfully. + cleanup + echo 'Cleaning up resources...' Cleaning up resources... + export KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + helm delete --purge ups-broker + helm delete --purge catalog + rm -f /tmp/sc-kubeconfig + kubectl delete secret -n test-ns my-secret + true + kubectl delete namespace test-ns namespace "test-ns" deleted + wait_for_expected_output -x -e test-ns -n 10 kubectl get namespaces + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=test-ns + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 3 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 6 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e test-ns kubectl get namespaces + output_does_not_contain_substring -e test-ns kubectl get namespaces + output_contains_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=test-ns + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get namespaces + [[ NAME STATUS AGE catalog Active 1m default Active 5m kube-system Active 5m test-ns Terminating 1m ups-broker Active 1m == *\t\e\s\t\-\n\s* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e test-ns kubectl get namespaces + output_does_not_contain_substring -e test-ns kubectl get namespaces + output_contains_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=test-ns + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get namespaces + [[ NAME STATUS AGE catalog Active 2m default Active 5m kube-system Active 5m ups-broker Active 2m == *\t\e\s\t\-\n\s* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 + [[ -n '' ]] + echo 'Cleanup done.' Cleanup done. [Pipeline] sh [service-catalog] Running shell script + /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh --registry gcr.io/service-catalog-jenkins-jobs/catalog/ --with-tpr --cleanup +++ dirname /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh ++ cd /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/../.. ++ pwd + ROOT=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog + . /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/utilities.sh + [[ 4 -gt 0 ]] + case "${1}" in + REGISTRY=gcr.io/service-catalog-jenkins-jobs/catalog/ + shift + shift + [[ 2 -gt 0 ]] + case "${1}" in + WITH_TPR=1 + shift + [[ 1 -gt 0 ]] + case "${1}" in + CLEANUP=1 + shift + [[ 0 -gt 0 ]] + BROKER_RELEASE=ups-broker + CATALOG_RELEASE=catalog + K8S_KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + SC_KUBECONFIG=/tmp/sc-kubeconfig ++ git describe --tags --always --abbrev=7 --dirty + VERSION=v0.0.1-47-g34de986 + REGISTRY=gcr.io/service-catalog-jenkins-jobs/catalog/ + [[ -n 1 ]] + trap cleanup EXIT + kubectl create namespace test-ns namespace "test-ns" created + echo 'Deploying user-provided-service broker...' Deploying user-provided-service broker... + retry -n 10 helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + shift 2 + [[ 7 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing helm' install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker 1. Executing helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker + helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/ups-broker --name ups-broker --namespace ups-broker NAME: ups-broker LAST DEPLOYED: Sat Apr 8 01:19:18 2017 NAMESPACE: ups-broker STATUS: DEPLOYED RESOURCES: ==> v1/Service NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE ups-broker-ups-broker 10.15.245.118 80/TCP 0s ==> extensions/v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE ups-broker-ups-broker 1 1 1 0 0s + echo 'Command succeeded.' Command succeeded. + return 0 + echo 'Deploying service catalog...' Deploying service catalog... + VALUES=debug=true + VALUES+=,insecure=true + VALUES+=,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986 + VALUES+=,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986 + VALUES+=,apiserver.service.type=LoadBalancer + [[ -n 1 ]] + VALUES+=,apiserver.storage.type=tpr + VALUES+=,apiserver.storage.tpr.globalNamespace=test-ns + retry -n 10 helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer,apiserver.storage.type=tpr,apiserver.storage.tpr.globalNamespace=test-ns + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + shift 2 + [[ 9 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing helm' install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer,apiserver.storage.type=tpr,apiserver.storage.tpr.globalNamespace=test-ns 1. Executing helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer,apiserver.storage.type=tpr,apiserver.storage.tpr.globalNamespace=test-ns + helm install /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/charts/catalog --name catalog --namespace catalog --set debug=true,insecure=true,controllerManager.image=gcr.io/service-catalog-jenkins-jobs/catalog/controller-manager:v0.0.1-47-g34de986,apiserver.image=gcr.io/service-catalog-jenkins-jobs/catalog/apiserver:v0.0.1-47-g34de986,apiserver.service.type=LoadBalancer,apiserver.storage.type=tpr,apiserver.storage.tpr.globalNamespace=test-ns NAME: catalog LAST DEPLOYED: Sat Apr 8 01:19:19 2017 NAMESPACE: catalog STATUS: DEPLOYED RESOURCES: ==> extensions/v1beta1/Deployment NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE catalog-catalog-apiserver 1 1 1 0 0s catalog-catalog-controller-manager 1 1 1 0 0s ==> v1/Secret NAME TYPE DATA AGE catalog-catalog-apiserver-cert Opaque 2 0s ==> v1/Service NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE catalog-catalog-apiserver 10.15.250.150 80:30045/TCP,443:32044/TCP 0s + echo 'Command succeeded.' Command succeeded. + return 0 + echo 'Waiting on pods to come up...' Waiting on pods to come up... + wait_for_expected_output -x -e ContainerCreating -n 10 kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-bhfqj 0/1 ContainerCreating 0 1s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace ups-broker + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace ups-broker + output_contains_substring -e ContainerCreating kubectl get pods --namespace ups-broker + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace ups-broker + [[ NAME READY STATUS RESTARTS AGE ups-broker-ups-broker-791661979-bhfqj 0/1 Running 0 7s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get pods --namespace ups-broker ++ grep ups-broker-ups-broker ++ awk '{print $3}' + [[ Running == \R\u\n\n\i\n\g ]] + wait_for_expected_output -x -e ContainerCreating -n 10 kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 5 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 8 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-457529331-8cn4s 0/1 ContainerCreating 0 6s catalog-catalog-controller-manager-2670993970-p247k 0/1 ContainerCreating 0 6s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-457529331-8cn4s 0/1 ContainerCreating 0 11s catalog-catalog-controller-manager-2670993970-p247k 0/1 ContainerCreating 0 11s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 7 seconds.' + sleep 7 + (( N++ )) + : + echo '3. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-457529331-8cn4s 0/1 ContainerCreating 0 18s catalog-catalog-controller-manager-2670993970-p247k 0/1 ContainerCreating 0 18s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 11 seconds.' + sleep 11 + (( N++ )) + : + echo '4. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-457529331-8cn4s 0/1 ContainerCreating 0 29s catalog-catalog-controller-manager-2670993970-p247k 0/1 ContainerCreating 0 29s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 16 seconds.' + sleep 16 + (( N++ )) + : + echo '5. Executing output_does_not_contain_substring' -e ContainerCreating kubectl get pods --namespace catalog + output_does_not_contain_substring -e ContainerCreating kubectl get pods --namespace catalog + output_contains_substring -e ContainerCreating kubectl get pods --namespace catalog + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=ContainerCreating + getopts :e: ARG + shift 2 + [[ 5 -le 0 ]] ++ kubectl get pods --namespace catalog + [[ NAME READY STATUS RESTARTS AGE catalog-catalog-apiserver-457529331-8cn4s 0/1 ErrImagePull 0 45s catalog-catalog-controller-manager-2670993970-p247k 0/1 Running 0 45s == *\C\o\n\t\a\i\n\e\r\C\r\e\a\t\i\n\g* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 ++ kubectl get pods --namespace catalog ++ grep catalog-catalog-apiserver ++ awk '{print $3}' + [[ ErrImagePull == \R\u\n\n\i\n\g ]] + error_exit 'API server pod did not come up successfully.' + echo '/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh: line 121: API server pod did not come up successfully. (exit 1)' /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/hack/test_walkthrough.sh: line 121: API server pod did not come up successfully. (exit 1) + exit 1 + cleanup + echo 'Cleaning up resources...' Cleaning up resources... + export KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + KUBECONFIG=/var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig + helm delete --purge ups-broker + helm delete --purge catalog + rm -f /tmp/sc-kubeconfig + kubectl delete secret -n test-ns my-secret + true + kubectl delete namespace test-ns namespace "test-ns" deleted + wait_for_expected_output -x -e test-ns -n 10 kubectl get namespaces + local OPTIND OPTARG ARG + local negate= + local count=0 + local sleep_amount=5 + local max_sleep=60 + local expected= + getopts :xn:s:t:e: ARG + case ${ARG} in + negate=YES + getopts :xn:s:t:e: ARG + case ${ARG} in + expected=test-ns + getopts :xn:s:t:e: ARG + case ${ARG} in + count=10 + getopts :xn:s:t:e: ARG + shift 5 + [[ 3 -le 0 ]] + [[ -n YES ]] + retry -n 10 -s 5 -t 60 output_does_not_contain_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local COUNT=10 + local SLEEP=5 MAX_SLEEP=60 + local MUL=3 DIV=2 + getopts :n:s:t: ARG + case ${ARG} in + COUNT=10 + getopts :n:s:t: ARG + case ${ARG} in + SLEEP=5 + getopts :n:s:t: ARG + case ${ARG} in + MAX_SLEEP=60 + getopts :n:s:t: ARG + shift 6 + [[ 6 -le 0 ]] + local N=1 S=5 + : + echo '1. Executing output_does_not_contain_substring' -e test-ns kubectl get namespaces + output_does_not_contain_substring -e test-ns kubectl get namespaces + output_contains_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=test-ns + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get namespaces + [[ NAME STATUS AGE catalog Active 2m default Active 6m kube-system Active 6m test-ns Terminating 57s ups-broker Active 2m == *\t\e\s\t\-\n\s* ]] + return 1 + [[ COUNT -le 0 ]] + [[ N -lt COUNT ]] + [[ S -lt MAX_SLEEP ]] + (( S=SLEEP * (MUL ** (N-1)) / (DIV ** (N-1)) )) + (( S=(S < MAX_SLEEP) ? S : MAX_SLEEP )) + echo 'Command failed. Will retry in 5 seconds.' + sleep 5 + (( N++ )) + : + echo '2. Executing output_does_not_contain_substring' -e test-ns kubectl get namespaces + output_does_not_contain_substring -e test-ns kubectl get namespaces + output_contains_substring -e test-ns kubectl get namespaces + local OPTIND OPTARG ARG + local expected= + getopts :e: ARG + case ${ARG} in + expected=test-ns + getopts :e: ARG + shift 2 + [[ 3 -le 0 ]] ++ kubectl get namespaces + [[ NAME STATUS AGE catalog Active 3m default Active 6m kube-system Active 6m ups-broker Active 3m == *\t\e\s\t\-\n\s* ]] + return 0 + echo 'Command succeeded.' + return 0 + return 0 + [[ -n 1 ]] + kubectl delete thirdpartyresources binding.servicecatalog.k8s.io Error from server (NotFound): thirdpartyresources.extensions "binding.servicecatalog.k8s.io" not found [Pipeline] sh [service-catalog] Running shell script + /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/contrib/jenkins/cleanup_cluster.sh --kubeconfig /var/lib/jenkins/workspace/service-catalog-PR-testing2/src/github.com/kubernetes-incubator/service-catalog/k8s-kubeconfig [Pipeline] setGitHubPullRequestStatus Setting pull request status service-catalog-PR-testing2 to FAILURE with message: Failed presubmits. Details at https://service-catalog-jenkins.appspot.com/job/service-catalog-PR-testing2/203/. [Pipeline] error [Pipeline] } [Pipeline] // dir [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline ERROR: Build failed. Finished: FAILURE ```
kibbles-n-bytes commented 7 years ago

The failure is an ErrImagePull on the apiserver image. This is very strange, as the logs show it earlier successfully pushed this image to the registry, and the image name seems to be identical.

Will need to add describing the pod on an error case here.

MHBauer commented 7 years ago

If it's an error on pulling, is there an IfNotPresent we can set somewhere to avoid even trying to pull?

arschles commented 7 years ago

cc/ @kibbles-n-bytes

kibbles-n-bytes commented 7 years ago

This flake only has been seen twice (not to be confused with a different ErrImagePull flake that was more prevalent and has been fixed), and it's been a week since the last sighting, so I'm inclined to say it was an intermittent GCP-related issue.

Additional logging that has been added to the walkthrough will help should it reoccur. For now, though, I'll close this.