~/src/github.com/openstack-k8s-operators/install_yamls ~/ci-framework-data/artifacts error: the server doesn't have a resource type "openstackversion" bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z keystone-kuttl-tests ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/namespace.yaml namespace/keystone-kuttl-tests created timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io keystone-kuttl-tests); do sleep 1; done" NAME DISPLAY NAME STATUS keystone-kuttl-tests Active oc project keystone-kuttl-tests Now using project "keystone-kuttl-tests" on server "https://api.crc.testing:6443". bash scripts/gen-input-kustomize.sh + OUT=/home/zuul/ci-framework-data/artifacts/manifests + '[' -z keystone-kuttl-tests ']' + '[' -z osp-secret ']' + '[' -z 12345678 ']' + '[' -z 1234567842 ']' + '[' -z 767c3ed056cbaa3b9dfedb8c6f825bf0 ']' + '[' -z sEFmdFjDUqRM2VemYslV5yGNWjokioJXsg8Nrlc3drU= ']' + '[' -z COX8bmlKAWn56XCGMrKQJj7dgHNAOl6f ']' + '[' -z openstack ']' + '[' -z libvirt-secret ']' + DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input + pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input ~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input ~/src/github.com/openstack-k8s-operators/install_yamls + cat oc get secret/osp-secret || oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input | oc apply -f - Error from server (NotFound): secrets "osp-secret" not found secret/libvirt-secret created secret/octavia-ca-passphrase created secret/osp-secret created oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists manila;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/nova-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr oc rsh openstack-galera-0 mysql -u root --password=12345678 -ss -e "show databases like 'nova_%';" | xargs -I '{}' oc rsh openstack-galera-0 mysql -u root --password=12345678 -ss -e "flush tables; drop database if exists {};" Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator-redis /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists octavia;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists designate;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists neutron;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists ironic;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists ironic_inspector;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists cinder;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists glance;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists placement;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift: no such file or directory No resources found rm -Rf -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists barbican;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists keystone;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ceilometer-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists aodh;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr if oc get RabbitmqCluster; then oc delete --ignore-not-found=true RabbitmqCluster --all; fi error: the server doesn't have a resource type "RabbitmqCluster" rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z openstack-operators ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/openstack-operators + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/namespace.yaml Warning: resource namespaces/openstack-operators is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by oc apply. oc apply should only be used on resources created declaratively by either oc create --save-config or oc apply. The missing annotation will be patched automatically. namespace/openstack-operators configured timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io openstack-operators); do sleep 1; done" NAME DISPLAY NAME STATUS openstack-operators Active oc project openstack-operators Now using project "openstack-operators" on server "https://api.crc.testing:6443". bash scripts/gen-olm.sh + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' -z quay.io/openstack-k8s-operators/mariadb-operator-index:latest ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op + OPERATOR_CHANNEL=alpha + OPERATOR_SOURCE=mariadb-operator-index + OPERATOR_SOURCE_NAMESPACE=openstack-operators + echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op + echo OPERATOR_CHANNEL alpha OPERATOR_CHANNEL alpha + echo OPERATOR_SOURCE mariadb-operator-index OPERATOR_SOURCE mariadb-operator-index + echo OPERATOR_SOURCE_NAMESPACE openstack-operators OPERATOR_SOURCE_NAMESPACE openstack-operators + cat + cat + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op catalogsource.operators.coreos.com/mariadb-operator-index created operatorgroup.operators.coreos.com/openstack created subscription.operators.coreos.com/mariadb-operator created mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/operator /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr bash scripts/clone-operator-repo.sh Cloning repo: git clone -b main https://github.com/openstack-k8s-operators/openstack-operator.git openstack-operator Cloning into 'openstack-operator'... Cloning repo: git clone -b main https://github.com/openstack-k8s-operators/mariadb-operator.git mariadb-operator Cloning into 'mariadb-operator'... Running checkout: git checkout 84fdf59cb2fb Note: switching to '84fdf59cb2fb'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at 84fdf59 Merge pull request #366 from openstack-k8s-operators/renovate/k8s.io cp /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/config/samples/mariadb_v1beta1_galera.yaml /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr bash scripts/gen-service-kustomize.sh +++ dirname scripts/gen-service-kustomize.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only ++ set -e + '[' -z keystone-kuttl-tests ']' + '[' -z Galera ']' + '[' -z osp-secret ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']' + '[' -n '' ']' + IMAGE=unused + IMAGE_PATH=containerImage + STORAGE_REQUEST=10G + INTERFACE_MTU=1500 + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']' + pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ~/src/github.com/openstack-k8s-operators/install_yamls + cat + [[ Galera == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + IFS=, + read -ra IMAGES + IFS=, + read -ra IMAGE_PATHS + '[' 1 '!=' 1 ']' + (( i=0 )) + (( i < 1 )) + SPEC_PATH=containerImage + SPEC_VALUE=unused + '[' unused '!=' unused ']' + (( i++ )) + (( i < 1 )) + '[' -n '' ']' + '[' Galera == OpenStackControlPlane ']' + '[' Galera == Galera ']' + cat + '[' Galera == NetConfig ']' + '[' -n '' ']' + [[ Galera == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + [[ Galera == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + kustomization_add_resources + echo merge config dir merge config dir ++ find . -type f -name '*.yaml' ++ grep -v kustomization + yamls=./mariadb_v1beta1_galera.yaml + for y in ${yamls[@]} + kustomize edit add resource ./mariadb_v1beta1_galera.yaml + popd ~/src/github.com/openstack-k8s-operators/install_yamls make wait make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-wait.sh + TIMEOUT=500s +++ dirname scripts/operator-wait.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq ']' + pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls + timeout 500s bash -c 'until [ "$(bash ./get-operator-status.sh)" == "Succeeded" ]; do sleep 5; done' + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "mariadb-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "mariadb-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "mariadb-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "mariadb-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "mariadb-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z mariadb ']' + '[' mariadb = rabbitmq-cluster ']' + DEPL_NAME=mariadb-operator-controller-manager ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=1 + '[' 1 '!=' 1 ']' + echo Succeeded + exit 0 + rc=0 + popd ~/src/github.com/openstack-k8s-operators/install_yamls + exit 0 make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' bash scripts/operator-deploy-resources.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']' + NEXT_WAIT_TIME=0 + '[' 0 -eq 15 ']' + oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr + oc apply -f - galera.mariadb.openstack.org/openstack created + '[' 0 -lt 15 ']' bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z metallb-system ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/metallb-system + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/metallb-system ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/metallb-system + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/namespace.yaml namespace/metallb-system created timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io metallb-system); do sleep 1; done" NAME DISPLAY NAME STATUS metallb-system Active bash scripts/gen-olm-metallb.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr + echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op + echo DEPLOY_DIR /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr DEPLOY_DIR /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr + echo INTERFACE INTERFACE + cat + cat + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op operatorgroup.operators.coreos.com/metallb-operator created subscription.operators.coreos.com/metallb-operator-sub created timeout 500s bash -c "while ! (oc get pod --no-headers=true -l control-plane=controller-manager -n metallb-system| grep metallb-operator-controller); do sleep 10; done" No resources found in metallb-system namespace. No resources found in metallb-system namespace. metallb-operator-controller-manager-859694fc4f-rbbdh 0/1 ContainerCreating 0 6s oc wait pod -n metallb-system --for condition=Ready -l control-plane=controller-manager --timeout=500s pod/metallb-operator-controller-manager-859694fc4f-rbbdh condition met timeout 500s bash -c "while ! (oc get pod --no-headers=true -l component=webhook-server -n metallb-system| grep metallb-operator-webhook); do sleep 10; done" metallb-operator-webhook-server-54787cf69c-lk2bh 1/1 Running 0 41s oc wait pod -n metallb-system --for condition=Ready -l component=webhook-server --timeout=500s pod/metallb-operator-webhook-server-54787cf69c-lk2bh condition met oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr/deploy_operator.yaml metallb.metallb.io/metallb created timeout 500s bash -c "while ! (oc get pod --no-headers=true -l component=speaker -n metallb-system | grep speaker); do sleep 10; done" No resources found in metallb-system namespace. speaker-z6n69 1/2 Running 0 10s oc wait pod -n metallb-system -l component=speaker --for condition=Ready --timeout=500s pod/speaker-z6n69 condition met bash scripts/gen-olm.sh + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' -z quay.io/openstack-k8s-operators/infra-operator-index:latest ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op + OPERATOR_CHANNEL=alpha + OPERATOR_SOURCE=infra-operator-index + OPERATOR_SOURCE_NAMESPACE=openstack-operators + echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op + echo OPERATOR_CHANNEL alpha OPERATOR_CHANNEL alpha + echo OPERATOR_SOURCE infra-operator-index OPERATOR_SOURCE infra-operator-index + echo OPERATOR_SOURCE_NAMESPACE openstack-operators OPERATOR_SOURCE_NAMESPACE openstack-operators + cat + cat + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op catalogsource.operators.coreos.com/infra-operator-index created operatorgroup.operators.coreos.com/openstack unchanged subscription.operators.coreos.com/infra-operator created mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/operator /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr bash scripts/clone-operator-repo.sh Cloning repo: git clone -b main https://github.com/openstack-k8s-operators/infra-operator.git infra-operator Cloning into 'infra-operator'... Running checkout: git checkout c2d58c6fc03e Note: switching to 'c2d58c6fc03e'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at c2d58c6 Merge pull request #459 from openstack-k8s-operators/renovate/main-github.com-onsi-ginkgo-v2-2.x cp /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/config/samples/memcached_v1beta1_memcached.yaml /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr bash scripts/gen-service-kustomize.sh +++ dirname scripts/gen-service-kustomize.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only ++ set -e + '[' -z keystone-kuttl-tests ']' + '[' -z Memcached ']' + '[' -z osp-secret ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']' + '[' -n '' ']' + IMAGE=unused + IMAGE_PATH=containerImage + STORAGE_REQUEST=10G + INTERFACE_MTU=1500 + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']' + pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ~/src/github.com/openstack-k8s-operators/install_yamls + cat + [[ Memcached == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + IFS=, + read -ra IMAGES + IFS=, + read -ra IMAGE_PATHS + '[' 1 '!=' 1 ']' + (( i=0 )) + (( i < 1 )) + SPEC_PATH=containerImage + SPEC_VALUE=unused + '[' unused '!=' unused ']' + (( i++ )) + (( i < 1 )) + '[' -n memcached ']' + cat + '[' Memcached == OpenStackControlPlane ']' + '[' Memcached == Galera ']' + '[' Memcached == NetConfig ']' + '[' -n '' ']' + [[ Memcached == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + [[ Memcached == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + kustomization_add_resources + echo merge config dir merge config dir ++ find . -type f -name '*.yaml' ++ grep -v kustomization + yamls=./memcached_v1beta1_memcached.yaml + for y in ${yamls[@]} + kustomize edit add resource ./memcached_v1beta1_memcached.yaml + popd ~/src/github.com/openstack-k8s-operators/install_yamls make wait make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-wait.sh + TIMEOUT=500s +++ dirname scripts/operator-wait.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq ']' + pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls + timeout 500s bash -c 'until [ "$(bash ./get-operator-status.sh)" == "Succeeded" ]; do sleep 5; done' + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "infra-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "infra-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "infra-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "infra-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "infra-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z infra ']' + '[' infra = rabbitmq-cluster ']' + DEPL_NAME=infra-operator-controller-manager ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=1 + '[' 1 '!=' 1 ']' + echo Succeeded + exit 0 + rc=0 + popd ~/src/github.com/openstack-k8s-operators/install_yamls + exit 0 make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' bash scripts/operator-deploy-resources.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']' + NEXT_WAIT_TIME=0 + '[' 0 -eq 15 ']' + oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr + oc apply -f - memcached.memcached.openstack.org/memcached created + '[' 0 -lt 15 ']' bash scripts/gen-olm.sh + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' -z quay.io/openstack-k8s-operators/rabbitmq-cluster-operator-index:latest ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op + OPERATOR_CHANNEL=alpha + OPERATOR_SOURCE=rabbitmq-cluster-operator-index + OPERATOR_SOURCE_NAMESPACE=openstack-operators + echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op + echo OPERATOR_CHANNEL alpha OPERATOR_CHANNEL alpha + echo OPERATOR_SOURCE rabbitmq-cluster-operator-index OPERATOR_SOURCE rabbitmq-cluster-operator-index + echo OPERATOR_SOURCE_NAMESPACE openstack-operators OPERATOR_SOURCE_NAMESPACE openstack-operators + cat + cat + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op catalogsource.operators.coreos.com/rabbitmq-cluster-operator-index created operatorgroup.operators.coreos.com/openstack unchanged subscription.operators.coreos.com/rabbitmq-cluster-operator created mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/operator /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq/op /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr bash -c "CHECKOUT_FROM_OPENSTACK_REF=false scripts/clone-operator-repo.sh" Cloning repo: git clone -b patches https://github.com/openstack-k8s-operators/rabbitmq-cluster-operator.git rabbitmq-operator Cloning into 'rabbitmq-operator'... cp /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator/docs/examples/default-security-context/rabbitmq.yaml /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr bash scripts/gen-service-kustomize.sh +++ dirname scripts/gen-service-kustomize.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only ++ set -e + '[' -z keystone-kuttl-tests ']' + '[' -z RabbitmqCluster ']' + '[' -z osp-secret ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']' + '[' -n '' ']' + IMAGE=unused + IMAGE_PATH=image + STORAGE_REQUEST=10G + INTERFACE_MTU=1500 + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']' + pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ~/src/github.com/openstack-k8s-operators/install_yamls + cat + [[ RabbitmqCluster == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + IFS=, + read -ra IMAGES + IFS=, + read -ra IMAGE_PATHS + '[' 1 '!=' 1 ']' + (( i=0 )) + (( i < 1 )) + SPEC_PATH=image + SPEC_VALUE=unused + '[' unused '!=' unused ']' + (( i++ )) + (( i < 1 )) + '[' -n rabbitmq ']' + cat + '[' RabbitmqCluster == OpenStackControlPlane ']' + '[' RabbitmqCluster == Galera ']' + '[' RabbitmqCluster == NetConfig ']' + '[' -n '' ']' + [[ RabbitmqCluster == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + [[ RabbitmqCluster == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + kustomization_add_resources + echo merge config dir merge config dir ++ find . -type f -name '*.yaml' ++ grep -v kustomization + yamls=./rabbitmq.yaml + for y in ${yamls[@]} + kustomize edit add resource ./rabbitmq.yaml + popd ~/src/github.com/openstack-k8s-operators/install_yamls make wait make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-wait.sh + TIMEOUT=500s +++ dirname scripts/operator-wait.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + '[' -z openstack-operators ']' + '[' -z rabbitmq ']' + '[' rabbitmq = rabbitmq ']' + OPERATOR_NAME=rabbitmq-cluster + pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls + timeout 500s bash -c 'until [ "$(bash ./get-operator-status.sh)" == "Succeeded" ]; do sleep 5; done' + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ jq -e .status.availableReplicas ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ jq -e .status.availableReplicas ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "rabbitmq-cluster-operator" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' + '[' rabbitmq-cluster = rabbitmq-cluster ']' + DEPL_NAME=rabbitmq-cluster-operator ++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json ++ jq -e .status.availableReplicas + REPLICAS=1 + '[' 1 '!=' 1 ']' + echo Succeeded + exit 0 + rc=0 + popd ~/src/github.com/openstack-k8s-operators/install_yamls + exit 0 make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' bash scripts/operator-deploy-resources.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']' + NEXT_WAIT_TIME=0 + '[' 0 -eq 15 ']' + oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr + oc apply -f - rabbitmqcluster.rabbitmq.com/rabbitmq created + '[' 0 -lt 15 ']' bash scripts/gen-olm.sh + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' -z 38.102.83.80:5001/openstack-k8s-operators/keystone-operator-index:8a8c1e3263c7479a1f0045415b297ba39d3c4efd ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op ']' + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op ']' + mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op + OPERATOR_CHANNEL=alpha + OPERATOR_SOURCE=keystone-operator-index + OPERATOR_SOURCE_NAMESPACE=openstack-operators + echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op + echo OPERATOR_CHANNEL alpha OPERATOR_CHANNEL alpha + echo OPERATOR_SOURCE keystone-operator-index OPERATOR_SOURCE keystone-operator-index + echo OPERATOR_SOURCE_NAMESPACE openstack-operators OPERATOR_SOURCE_NAMESPACE openstack-operators + cat + cat + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op catalogsource.operators.coreos.com/keystone-operator-index created operatorgroup.operators.coreos.com/openstack unchanged subscription.operators.coreos.com/keystone-operator created mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/operator /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr bash scripts/clone-operator-repo.sh Cloning repo: git clone /home/zuul/src/github.com/openstack-k8s-operators/keystone-operator keystone-operator Cloning into 'keystone-operator'... done. cp /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/config/samples/keystone_v1beta1_keystoneapi.yaml /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr bash scripts/gen-service-kustomize.sh +++ dirname scripts/gen-service-kustomize.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only ++ set -e + '[' -z keystone-kuttl-tests ']' + '[' -z KeystoneAPI ']' + '[' -z osp-secret ']' + '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ']' + '[' -n '' ']' + IMAGE=unused + IMAGE_PATH=containerImage + STORAGE_REQUEST=10G + INTERFACE_MTU=1500 + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ']' + pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ~/src/github.com/openstack-k8s-operators/install_yamls + cat + [[ KeystoneAPI == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + IFS=, + read -ra IMAGES + IFS=, + read -ra IMAGE_PATHS + '[' 1 '!=' 1 ']' + (( i=0 )) + (( i < 1 )) + SPEC_PATH=containerImage + SPEC_VALUE=unused + '[' unused '!=' unused ']' + (( i++ )) + (( i < 1 )) + '[' -n '' ']' + '[' KeystoneAPI == OpenStackControlPlane ']' + '[' KeystoneAPI == Galera ']' + '[' KeystoneAPI == NetConfig ']' + '[' -n '' ']' + [[ KeystoneAPI == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + [[ KeystoneAPI == \O\p\e\n\S\t\a\c\k\C\o\n\t\r\o\l\P\l\a\n\e ]] + kustomization_add_resources + echo merge config dir merge config dir ++ find . -type f -name '*.yaml' ++ grep -v kustomization + yamls=./keystone_v1beta1_keystoneapi.yaml + for y in ${yamls[@]} + kustomize edit add resource ./keystone_v1beta1_keystoneapi.yaml + popd ~/src/github.com/openstack-k8s-operators/install_yamls make wait make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-wait.sh + TIMEOUT=500s +++ dirname scripts/operator-wait.sh ++ cd scripts ++ pwd -P + SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq ']' + pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls + timeout 500s bash -c 'until [ "$(bash ./get-operator-status.sh)" == "Succeeded" ]; do sleep 5; done' + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas Error from server (NotFound): deployments.apps "keystone-operator-controller-manager" not found + REPLICAS= + '[' '' '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=null + '[' null '!=' 1 ']' + exit 1 + '[' -z openstack-operators ']' + '[' -z keystone ']' + '[' keystone = rabbitmq-cluster ']' + DEPL_NAME=keystone-operator-controller-manager ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json ++ jq -e .status.availableReplicas + REPLICAS=1 + '[' 1 '!=' 1 ']' + echo Succeeded + exit 0 + rc=0 + popd ~/src/github.com/openstack-k8s-operators/install_yamls + exit 0 make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make keystone_kuttl_run make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" KEYSTONE_KUTTL_DIR=/home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/tests/kuttl/tests kubectl-kuttl test --config /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/kuttl-test.yaml /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/tests/kuttl/tests --namespace keystone-kuttl-tests 2025/10/07 13:21:57 kutt-test config testdirs is overridden with args: [ /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/tests/kuttl/tests ] === RUN kuttl harness.go:463: starting setup harness.go:255: running tests using configured kubeconfig. harness.go:278: Successful connection to cluster at: https://api.crc.testing:6443 harness.go:363: running tests harness.go:75: going to run test suite with timeout of 800 seconds for each step harness.go:375: testsuite: /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/tests/kuttl/tests has 5 tests === RUN kuttl/harness === RUN kuttl/harness/change_keystone_config === PAUSE kuttl/harness/change_keystone_config === RUN kuttl/harness/fernet_rotation === PAUSE kuttl/harness/fernet_rotation === RUN kuttl/harness/keystone_resources === PAUSE kuttl/harness/keystone_resources === RUN kuttl/harness/keystone_scale === PAUSE kuttl/harness/keystone_scale === RUN kuttl/harness/keystone_tls === PAUSE kuttl/harness/keystone_tls === CONT kuttl/harness/change_keystone_config logger.go:42: 13:21:57 | change_keystone_config | Skipping creation of user-supplied namespace: keystone-kuttl-tests logger.go:42: 13:21:57 | change_keystone_config/0-deploy_keystone | starting test step 0-deploy_keystone logger.go:42: 13:21:57 | change_keystone_config/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created logger.go:42: 13:21:57 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:21:57 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:21:58 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:21:58 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:21:59 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:00 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:01 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:01 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:02 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:02 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:03 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:03 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:04 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:04 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:05 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:06 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:07 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:07 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:08 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:08 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:09 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:09 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:10 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:10 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:11 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:11 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:12 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:13 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:14 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:14 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:15 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:15 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:16 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:16 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:17 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:17 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:18 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:18 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:19 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:20 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:21 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:21 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:22 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:22 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:23 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:23 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:24 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:24 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:22:25 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:27 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:28 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:29 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:30 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:31 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:32 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:34 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:35 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:36 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:37 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:38 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:40 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:41 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:42 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:43 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:44 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:46 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:47 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:48 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:49 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:51 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:52 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:53 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:54 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:55 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:57 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:58 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:22:59 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:00 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:01 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:02 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:04 | change_keystone_config/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:04 | change_keystone_config/0-deploy_keystone | test step completed 0-deploy_keystone logger.go:42: 13:23:04 | change_keystone_config/1- | starting test step 1- logger.go:42: 13:23:04 | change_keystone_config/1- | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh] logger.go:42: 13:23:04 | change_keystone_config/1- | test step completed 1- logger.go:42: 13:23:04 | change_keystone_config/2-change_keystone_config | starting test step 2-change_keystone_config logger.go:42: 13:23:04 | change_keystone_config/2-change_keystone_config | running command: [sh -c oc patch keystoneapi -n $NAMESPACE keystone --type='json' -p='[{"op": "replace", "path": "/spec/customServiceConfig", "value": "[DEFAULT]\ndebug = false"}]' ] logger.go:42: 13:23:04 | change_keystone_config/2-change_keystone_config | keystoneapi.keystone.openstack.org/keystone patched logger.go:42: 13:23:04 | change_keystone_config/2-change_keystone_config | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh --reverse] logger.go:42: 13:23:06 | change_keystone_config/2-change_keystone_config | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh --reverse] logger.go:42: 13:23:06 | change_keystone_config/2-change_keystone_config | error: arguments in resource/name form may not have more than one slash logger.go:42: 13:23:06 | change_keystone_config/2-change_keystone_config | test step completed 2-change_keystone_config logger.go:42: 13:23:06 | change_keystone_config/3-cleanup-keystone | starting test step 3-cleanup-keystone logger.go:42: 13:23:10 | change_keystone_config/3-cleanup-keystone | test step completed 3-cleanup-keystone logger.go:42: 13:23:10 | change_keystone_config | skipping kubernetes event logging === CONT kuttl/harness/keystone_scale logger.go:42: 13:23:10 | keystone_scale | Skipping creation of user-supplied namespace: keystone-kuttl-tests logger.go:42: 13:23:10 | keystone_scale/0-deploy_keystone | starting test step 0-deploy_keystone logger.go:42: 13:23:10 | keystone_scale/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created logger.go:42: 13:23:10 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:10 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:11 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:12 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:13 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:13 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:14 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:14 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:15 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:15 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:16 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:16 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:17 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:18 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:19 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:19 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:20 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:20 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:21 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:21 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:22 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:22 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:23 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:24 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:25 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:25 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:26 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:26 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:27 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:27 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:28 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:28 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:29 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:30 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:31 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:31 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:23:32 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:33 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:34 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:35 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:37 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:38 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:39 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:40 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:41 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:43 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:44 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:45 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:46 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:48 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:49 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:50 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:51 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:52 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:54 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:55 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:56 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:57 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:23:58 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:00 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:01 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:02 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:03 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:04 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:06 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:07 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:08 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:09 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:10 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:24:10 | keystone_scale/0-deploy_keystone | test step completed 0-deploy_keystone logger.go:42: 13:24:10 | keystone_scale/1-scale-keystoneapi | starting test step 1-scale-keystoneapi logger.go:42: 13:24:10 | keystone_scale/1-scale-keystoneapi | running command: [sh -c oc patch keystoneapi -n $NAMESPACE keystone --type='json' -p='[{"op": "replace", "path": "/spec/replicas", "value":3}]' ] logger.go:42: 13:24:11 | keystone_scale/1-scale-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched logger.go:42: 13:24:43 | keystone_scale/1-scale-keystoneapi | test step completed 1-scale-keystoneapi logger.go:42: 13:24:43 | keystone_scale/2-scale-down-keystoneapi | starting test step 2-scale-down-keystoneapi logger.go:42: 13:24:43 | keystone_scale/2-scale-down-keystoneapi | running command: [sh -c oc patch keystoneapi -n $NAMESPACE keystone --type='json' -p='[{"op": "replace", "path": "/spec/replicas", "value":1}]' ] logger.go:42: 13:24:43 | keystone_scale/2-scale-down-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched logger.go:42: 13:24:45 | keystone_scale/2-scale-down-keystoneapi | test step completed 2-scale-down-keystoneapi logger.go:42: 13:24:45 | keystone_scale/3-scale-down-zero-keystoneapi | starting test step 3-scale-down-zero-keystoneapi logger.go:42: 13:24:45 | keystone_scale/3-scale-down-zero-keystoneapi | running command: [sh -c oc patch keystoneapi -n $NAMESPACE keystone --type='json' -p='[{"op": "replace", "path": "/spec/replicas", "value":0}]' ] logger.go:42: 13:24:45 | keystone_scale/3-scale-down-zero-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched logger.go:42: 13:24:49 | keystone_scale/3-scale-down-zero-keystoneapi | test step completed 3-scale-down-zero-keystoneapi logger.go:42: 13:24:49 | keystone_scale/4-cleanup-keystone | starting test step 4-cleanup-keystone logger.go:42: 13:24:49 | keystone_scale/4-cleanup-keystone | test step completed 4-cleanup-keystone logger.go:42: 13:24:49 | keystone_scale | skipping kubernetes event logging === CONT kuttl/harness/keystone_tls logger.go:42: 13:24:49 | keystone_tls | Skipping creation of user-supplied namespace: keystone-kuttl-tests logger.go:42: 13:24:49 | keystone_tls/0-tls_ca_bundle | starting test step 0-tls_ca_bundle logger.go:42: 13:24:49 | keystone_tls/0-tls_ca_bundle | Secret:keystone-kuttl-tests/combined-ca-bundle created logger.go:42: 13:24:49 | keystone_tls/0-tls_ca_bundle | Secret:keystone-kuttl-tests/cert-keystone-internal-svc created logger.go:42: 13:24:49 | keystone_tls/0-tls_ca_bundle | Secret:keystone-kuttl-tests/cert-keystone-public-svc created logger.go:42: 13:24:49 | keystone_tls/0-tls_ca_bundle | test step completed 0-tls_ca_bundle logger.go:42: 13:24:49 | keystone_tls/1-keystoneapi_tls_deploy | starting test step 1-keystoneapi_tls_deploy logger.go:42: 13:24:49 | keystone_tls/1-keystoneapi_tls_deploy | KeystoneAPI:keystone-kuttl-tests/keystone created logger.go:42: 13:24:49 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:49 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:50 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:50 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:51 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:52 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:53 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:53 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:54 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:54 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:55 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:55 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:56 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:56 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:57 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:58 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:24:59 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:24:59 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:00 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:00 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:01 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:01 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:02 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:02 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:03 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:03 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:04 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:05 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:06 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:06 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:07 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:07 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:08 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:08 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:09 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:09 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:10 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:11 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:12 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:12 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:13 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:13 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:14 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:14 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex logger.go:42: 13:25:15 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:16 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:17 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:19 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:20 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:21 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:22 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:23 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:24 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:26 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:27 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:28 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:29 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:30 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:31 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:33 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:34 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:35 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:36 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:37 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:39 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:40 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:41 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:42 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:43 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:45 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:46 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:47 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:48 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:49 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:50 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:52 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:53 | keystone_tls/1-keystoneapi_tls_deploy | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="https:\/\/keystone-internal.$NAMESPACE.*:https:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi ] logger.go:42: 13:25:53 | keystone_tls/1-keystoneapi_tls_deploy | test step completed 1-keystoneapi_tls_deploy logger.go:42: 13:25:53 | keystone_tls/2-cleanup-keystone | starting test step 2-cleanup-keystone logger.go:42: 13:25:57 | keystone_tls/2-cleanup-keystone | test step completed 2-cleanup-keystone logger.go:42: 13:25:57 | keystone_tls | skipping kubernetes event logging === CONT kuttl/harness/keystone_resources logger.go:42: 13:25:57 | keystone_resources | Skipping creation of user-supplied namespace: keystone-kuttl-tests logger.go:42: 13:25:57 | keystone_resources/0-deploy_keystone | starting test step 0-deploy_keystone logger.go:42: 13:25:57 | keystone_resources/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created logger.go:42: 13:25:57 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:25:57 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:25:58 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:25:59 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:00 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:00 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:01 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:01 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:02 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:02 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:03 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:03 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:04 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:05 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:06 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:06 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:07 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:07 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:08 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:08 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:09 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:09 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:10 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:11 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:12 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:12 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:13 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:13 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:14 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:14 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:15 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:16 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:17 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:17 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:18 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:18 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:19 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:19 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:26:20 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:21 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:23 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:24 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:25 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:26 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:27 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:29 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:30 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:31 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:32 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:33 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:35 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:36 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:37 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:38 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:40 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:41 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:42 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:43 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:44 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:45 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:47 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:48 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:49 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:50 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:52 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:53 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:54 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:55 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:56 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:58 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:26:58 | keystone_resources/0-deploy_keystone | test step completed 0-deploy_keystone logger.go:42: 13:26:58 | keystone_resources/1-deploy-keystoneservice | starting test step 1-deploy-keystoneservice logger.go:42: 13:26:58 | keystone_resources/1-deploy-keystoneservice | KeystoneService:keystone-kuttl-tests/placement created logger.go:42: 13:27:00 | keystone_resources/1-deploy-keystoneservice | test step completed 1-deploy-keystoneservice logger.go:42: 13:27:00 | keystone_resources/2-deploy-keystoneendpoint | starting test step 2-deploy-keystoneendpoint logger.go:42: 13:27:00 | keystone_resources/2-deploy-keystoneendpoint | KeystoneEndpoint:keystone-kuttl-tests/placement created logger.go:42: 13:27:11 | keystone_resources/2-deploy-keystoneendpoint | test step completed 2-deploy-keystoneendpoint logger.go:42: 13:27:11 | keystone_resources/3-cleanup-keystoneendpoint | starting test step 3-cleanup-keystoneendpoint logger.go:42: 13:27:13 | keystone_resources/3-cleanup-keystoneendpoint | test step completed 3-cleanup-keystoneendpoint logger.go:42: 13:27:13 | keystone_resources/4-cleanup-keystoneservice | starting test step 4-cleanup-keystoneservice logger.go:42: 13:27:16 | keystone_resources/4-cleanup-keystoneservice | test step completed 4-cleanup-keystoneservice logger.go:42: 13:27:16 | keystone_resources/5-cleanup-keystone | starting test step 5-cleanup-keystone logger.go:42: 13:27:21 | keystone_resources/5-cleanup-keystone | test step completed 5-cleanup-keystone logger.go:42: 13:27:21 | keystone_resources | skipping kubernetes event logging === CONT kuttl/harness/fernet_rotation logger.go:42: 13:27:21 | fernet_rotation | Skipping creation of user-supplied namespace: keystone-kuttl-tests logger.go:42: 13:27:21 | fernet_rotation/0-deploy_keystone | starting test step 0-deploy_keystone logger.go:42: 13:27:21 | fernet_rotation/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created logger.go:42: 13:27:21 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:21 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:22 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:22 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:23 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:24 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:25 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:25 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:26 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:26 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:27 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:27 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:28 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:28 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:29 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:30 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:31 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:31 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:32 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:32 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:33 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:33 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:34 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:34 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:35 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:36 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:37 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:37 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:38 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:38 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:39 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:39 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:40 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:40 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:41 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:41 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex logger.go:42: 13:27:43 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:44 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:45 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:46 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:47 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:49 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:50 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:51 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:52 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:54 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:55 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:56 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:57 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:27:58 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:00 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:01 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:02 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:03 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:05 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:06 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:07 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:08 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:09 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:11 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:12 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:13 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:14 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:15 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:17 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:18 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:19 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:20 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on # kuttl asserts to check them. This short script gathers the addresses and checks that # the three endpoints are defined and their addresses follow the default pattern template='{{.status.apiEndpoints.internal}}{{":"}}{{.status.apiEndpoints.public}}{{"\n"}}' regex="http:\/\/keystone-internal.$NAMESPACE.*:http:\/\/keystone-public.$NAMESPACE.*" apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template="$template") matches=$(echo "$apiEndpoints" | sed -e "s?$regex??") if [ -z "$matches" ]; then exit 0 else echo "Endpoints URLS: $apiEndpoints do not match regex" exit 1 fi # when using image digests the containerImage URLs are SHA's so we verify them with a script tupleTemplate='{{ range (index .spec.template.spec.containers 1).env }}{{ .name }}{{ "#" }}{{ .value}}{{"\n"}}{{ end }}' imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template="$tupleTemplate") # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines for ITEM in $(echo $imageTuples); do # it is an image if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\([^_]*\)_.*|\1|') IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\(.*\)|\1|') template='{{.spec.containerImage}}' case $NAME in API) SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template="$template") ;; esac if [ "$SERVICE_IMAGE" != "$IMG_FROM_ENV" ]; then echo "$NAME image does not equal $VALUE" exit 1 fi fi done ] logger.go:42: 13:28:20 | fernet_rotation/0-deploy_keystone | test step completed 0-deploy_keystone logger.go:42: 13:28:20 | fernet_rotation/1-deploy_openstackclient | starting test step 1-deploy_openstackclient logger.go:42: 13:28:20 | fernet_rotation/1-deploy_openstackclient | Pod:keystone-kuttl-tests/openstackclient created logger.go:42: 13:28:20 | fernet_rotation/1-deploy_openstackclient | running command: [sh -c ../../common/scripts/create_test_token.sh] logger.go:42: 13:28:21 | fernet_rotation/1-deploy_openstackclient | + oc wait --for=condition=ready pod openstackclient --timeout=30s -n keystone-kuttl-tests logger.go:42: 13:28:29 | fernet_rotation/1-deploy_openstackclient | pod/openstackclient condition met logger.go:42: 13:28:29 | fernet_rotation/1-deploy_openstackclient | + alias 'openstack=oc exec -tn keystone-kuttl-tests openstackclient -- openstack' logger.go:42: 13:28:29 | fernet_rotation/1-deploy_openstackclient | ++ oc exec -tn keystone-kuttl-tests openstackclient -- openstack token issue -f value -c id logger.go:42: 13:28:34 | fernet_rotation/1-deploy_openstackclient | + export OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:28:34 | fernet_rotation/1-deploy_openstackclient | + OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:28:34 | fernet_rotation/1-deploy_openstackclient | + echo gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:28:34 | fernet_rotation/1-deploy_openstackclient | test step completed 1-deploy_openstackclient logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | starting test step 2-rotate_keys logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | Secret:keystone-kuttl-tests/keystone updated logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | running command: [sh -c ../../common/scripts/validate_test_token.sh] logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + seconds=1 logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + '[' 1 -le 30 ']' logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | ++ oc get secret keystone -n keystone-kuttl-tests -o 'jsonpath={.metadata.annotations['\''keystone\.openstack\.org/rotatedat'\'']}' logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + rotatedat=2025-10-07T13:28:34Z logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + '[' 2025-10-07T13:28:34Z '!=' 2009-11-10T23:00:00Z ']' logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + break logger.go:42: 13:28:34 | fernet_rotation/2-rotate_keys | + sleep 60 logger.go:42: 13:29:34 | fernet_rotation/2-rotate_keys | ++ cat /tmp/temporary_test_token logger.go:42: 13:29:34 | fernet_rotation/2-rotate_keys | + export OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:29:34 | fernet_rotation/2-rotate_keys | + OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:29:34 | fernet_rotation/2-rotate_keys | ++ oc exec -tn keystone-kuttl-tests openstackclient -- env -u OS_CLOUD - OS_AUTH_URL=http://keystone-public.keystone-kuttl-tests.svc:5000 OS_AUTH_TYPE=token OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk openstack endpoint list logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | ++ true logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | + output='Could not load '\''metric_clean-tombstones'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_delete'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_list'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_query'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_show'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_snapshot'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | The service catalog is empty. logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | command terminated with exit code 1' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | + echo 'Could not load '\''metric_clean-tombstones'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_delete'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_list'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_query'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_show'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | Could not load '\''metric_snapshot'\'': '\''HOME'\'' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | The service catalog is empty. logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | command terminated with exit code 1' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | + grep -qi 'Could not recognize Fernet token' logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | + exit 0 logger.go:42: 13:29:38 | fernet_rotation/2-rotate_keys | test step completed 2-rotate_keys logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | starting test step 3-rotate_keys_until_invalidate logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | running command: [sh -c ../../common/scripts/rotate_token.sh] logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + TMP_SECRET_FILE=/tmp/keystone-secret.yaml logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5} logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 1...' logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 1... logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + cat logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | Warning: resource secrets/keystone is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by oc apply. oc apply should only be used on resources created declaratively by either oc create --save-config or oc apply. The missing annotation will be patched automatically. logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured logger.go:42: 13:29:38 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100 logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 1 completed successfully.' logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 1 completed successfully. logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5} logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 2...' logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 2... logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + cat logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured logger.go:42: 13:31:18 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100 logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 2 completed successfully.' logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 2 completed successfully. logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5} logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 3...' logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 3... logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + cat logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured logger.go:42: 13:32:58 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100 logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 3 completed successfully.' logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 3 completed successfully. logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5} logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 4...' logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 4... logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + cat logger.go:42: 13:34:38 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml logger.go:42: 13:34:39 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured logger.go:42: 13:34:39 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100 logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 4 completed successfully.' logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 4 completed successfully. logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5} logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 5...' logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 5... logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + cat logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured logger.go:42: 13:36:19 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100 logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 5 completed successfully.' logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 5 completed successfully. logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + rm -f /tmp/keystone-secret.yaml logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'All rotations completed successfully.' logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | All rotations completed successfully. logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + exit 0 logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | running command: [sh -c ../../common/scripts/test_invalid_token.sh] logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | ++ cat /tmp/temporary_test_token logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + export OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | + OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk logger.go:42: 13:37:59 | fernet_rotation/3-rotate_keys_until_invalidate | ++ oc exec -tn keystone-kuttl-tests openstackclient -- env -u OS_CLOUD - OS_AUTH_URL=http://keystone-public.keystone-kuttl-tests.svc:5000 OS_AUTH_TYPE=token OS_TOKEN=gAAAAABo5RWCI1fbCbzz7AnMPDtHN1eXElbpEU3nlXpmTmb6fsNUjPpUBu5JjaFeTOkRZuHTpLv2J6PEXVz5nWIybPGjORwk1ANq9T0RWz0PVUlI9TFO7XUO5sJYBq4JPpqjnMKjVpBMrQgac61K0M0-DexQs1HEpu5I_KARPjBzqXP8qHOW4Yk openstack endpoint list logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | + output='Could not load '\''metric_clean-tombstones'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_delete'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_list'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_query'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_show'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_snapshot'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not recognize Fernet token (HTTP 404) (Request-ID: req-99a155ed-760d-40aa-b664-6871aca93e78) logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | command terminated with exit code 1' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | ++ grep -i 'Could not recognize Fernet token' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | ++ echo 'Could not load '\''metric_clean-tombstones'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_delete'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_list'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_query'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_show'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not load '\''metric_snapshot'\'': '\''HOME'\'' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | Could not recognize Fernet token (HTTP 404) (Request-ID: req-99a155ed-760d-40aa-b664-6871aca93e78) logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | command terminated with exit code 1' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | + filtered_output='Could not recognize Fernet token (HTTP 404) (Request-ID: req-99a155ed-760d-40aa-b664-6871aca93e78)' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | + grep -q 'Could not recognize Fernet token' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Could not recognize Fernet token (HTTP 404) (Request-ID: req-99a155ed-760d-40aa-b664-6871aca93e78)' logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | + exit 0 logger.go:42: 13:38:00 | fernet_rotation/3-rotate_keys_until_invalidate | test step completed 3-rotate_keys_until_invalidate logger.go:42: 13:38:00 | fernet_rotation/4-cleanup-openstackclient | starting test step 4-cleanup-openstackclient logger.go:42: 13:38:02 | fernet_rotation/4-cleanup-openstackclient | test step completed 4-cleanup-openstackclient logger.go:42: 13:38:02 | fernet_rotation/5-cleanup-keystone | starting test step 5-cleanup-keystone logger.go:42: 13:38:06 | fernet_rotation/5-cleanup-keystone | test step completed 5-cleanup-keystone logger.go:42: 13:38:06 | fernet_rotation | skipping kubernetes event logging === NAME kuttl harness.go:406: run tests finished harness.go:514: cleaning up harness.go:571: removing temp folder: "" --- PASS: kuttl (969.44s) --- PASS: kuttl/harness (0.00s) --- PASS: kuttl/harness/change_keystone_config (73.04s) --- PASS: kuttl/harness/keystone_scale (98.92s) --- PASS: kuttl/harness/keystone_tls (68.14s) --- PASS: kuttl/harness/keystone_resources (83.82s) --- PASS: kuttl/harness/fernet_rotation (645.51s) PASS make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make deploy_cleanup make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists manila;" || true Error from server (NotFound): pods "openstack-galera-0" not found oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z keystone-kuttl-tests ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests ']' + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/namespace.yaml namespace/keystone-kuttl-tests unchanged timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io keystone-kuttl-tests); do sleep 1; done" NAME DISPLAY NAME STATUS keystone-kuttl-tests Active oc project keystone-kuttl-tests Now using project "keystone-kuttl-tests" on server "https://api.crc.testing:6443". oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/nova-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr oc rsh openstack-galera-0 mysql -u root --password=12345678 -ss -e "show databases like 'nova_%';" | xargs -I '{}' oc rsh openstack-galera-0 mysql -u root --password=12345678 -ss -e "flush tables; drop database if exists {};" Defaulted container "galera" out of: galera, mysql-bootstrap (init) oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator-redis /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists octavia;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists designate;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists neutron;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists ironic;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists ironic_inspector;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists cinder;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists glance;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists placement;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift: no such file or directory No resources found rm -Rf -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists barbican;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr | oc delete --ignore-not-found=true -f - rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists keystone;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr | oc delete --ignore-not-found=true -f - galera.mariadb.openstack.org "openstack" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ceilometer-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr oc rsh -t openstack-galera-0 mysql -u root --password=12345678 -e "flush tables; drop database if exists aodh;" || true Defaulted container "galera" out of: galera, mysql-bootstrap (init) Unable to use a TTY - input is not a terminal or the right kind of file oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr | oc delete --ignore-not-found=true -f - memcached.memcached.openstack.org "memcached" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr if oc get RabbitmqCluster; then oc delete --ignore-not-found=true RabbitmqCluster --all; fi NAME ALLREPLICASREADY RECONCILESUCCESS AGE rabbitmq True True 17m rabbitmqcluster.rabbitmq.com "rabbitmq" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make keystone_cleanup make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-cleanup.sh + '[' -z openstack-operators ']' + '[' -z keystone ']' ++ oc get csv --no-headers -o custom-columns=:metadata.name --ignore-not-found=true ++ grep keystone + CSV=keystone-operator.v0.0.1 + '[' -n keystone-operator.v0.0.1 ']' + oc delete -n openstack-operators csv keystone-operator.v0.0.1 --ignore-not-found=true clusterserviceversion.operators.coreos.com "keystone-operator.v0.0.1" deleted + oc delete -n openstack-operators subscription keystone-operator --ignore-not-found=true subscription.operators.coreos.com "keystone-operator" deleted + oc delete -n openstack-operators catalogsource keystone-operator-index --ignore-not-found=true catalogsource.operators.coreos.com "keystone-operator-index" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make kuttl_db_cleanup make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z keystone-kuttl-tests ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests ']' + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/namespace.yaml namespace/keystone-kuttl-tests unchanged timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io keystone-kuttl-tests); do sleep 1; done" NAME DISPLAY NAME STATUS keystone-kuttl-tests Active oc project keystone-kuttl-tests Already on project "keystone-kuttl-tests" on server "https://api.crc.testing:6443". oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr bash scripts/operator-cleanup.sh + '[' -z openstack-operators ']' + '[' -z infra ']' ++ oc get csv --no-headers -o custom-columns=:metadata.name --ignore-not-found=true ++ grep infra + CSV=infra-operator.v0.0.1 + '[' -n infra-operator.v0.0.1 ']' + oc delete -n openstack-operators csv infra-operator.v0.0.1 --ignore-not-found=true clusterserviceversion.operators.coreos.com "infra-operator.v0.0.1" deleted + oc delete -n openstack-operators subscription infra-operator --ignore-not-found=true subscription.operators.coreos.com "infra-operator" deleted + oc delete -n openstack-operators catalogsource infra-operator-index --ignore-not-found=true catalogsource.operators.coreos.com "infra-operator-index" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr | oc delete --ignore-not-found=true -f - error: must build at directory: not a valid directory: evalsymlink failure on '/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr' : lstat /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr: no such file or directory No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr bash scripts/operator-cleanup.sh + '[' -z openstack-operators ']' + '[' -z mariadb ']' ++ oc get csv --no-headers -o custom-columns=:metadata.name --ignore-not-found=true ++ grep mariadb + CSV=mariadb-operator.v0.0.1 + '[' -n mariadb-operator.v0.0.1 ']' + oc delete -n openstack-operators csv mariadb-operator.v0.0.1 --ignore-not-found=true clusterserviceversion.operators.coreos.com "mariadb-operator.v0.0.1" deleted + oc delete -n openstack-operators subscription mariadb-operator --ignore-not-found=true subscription.operators.coreos.com "mariadb-operator" deleted + oc delete -n openstack-operators catalogsource mariadb-operator-index --ignore-not-found=true catalogsource.operators.coreos.com "mariadb-operator-index" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input | oc delete --ignore-not-found=true -f - secret "libvirt-secret" deleted secret "octavia-ca-passphrase" deleted secret "osp-secret" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make rabbitmq_deploy_cleanup make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/gen-namespace.sh + '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']' + '[' -z keystone-kuttl-tests ']' + OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests + '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests ']' + cat oc apply -f /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/namespace.yaml namespace/keystone-kuttl-tests unchanged timeout 500s bash -c "while ! (oc get project.v1.project.openshift.io keystone-kuttl-tests); do sleep 1; done" NAME DISPLAY NAME STATUS keystone-kuttl-tests Active oc project keystone-kuttl-tests Already on project "keystone-kuttl-tests" on server "https://api.crc.testing:6443". if oc get RabbitmqCluster; then oc delete --ignore-not-found=true RabbitmqCluster --all; fi No resources found in keystone-kuttl-tests namespace. No resources found rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' make rabbitmq_cleanup make[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' error: the server doesn't have a resource type "openstackversion" bash scripts/operator-cleanup.sh + '[' -z openstack-operators ']' + '[' -z rabbitmq-cluster ']' ++ oc get csv --no-headers -o custom-columns=:metadata.name --ignore-not-found=true ++ grep rabbitmq-cluster + CSV=rabbitmq-cluster-operator.v0.0.1 + '[' -n rabbitmq-cluster-operator.v0.0.1 ']' + oc delete -n openstack-operators csv rabbitmq-cluster-operator.v0.0.1 --ignore-not-found=true clusterserviceversion.operators.coreos.com "rabbitmq-cluster-operator.v0.0.1" deleted + oc delete -n openstack-operators subscription rabbitmq-cluster-operator --ignore-not-found=true subscription.operators.coreos.com "rabbitmq-cluster-operator" deleted + oc delete -n openstack-operators catalogsource rabbitmq-cluster-operator-index --ignore-not-found=true catalogsource.operators.coreos.com "rabbitmq-cluster-operator-index" deleted rm -Rf /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op make[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls' bash scripts/restore-namespace.sh Now using project "openstack" on server "https://api.crc.testing:6443". ~/ci-framework-data/artifacts