2025-11-25 08:39:36,335 p=30595 u=zuul n=ansible | Starting galaxy collection install process 2025-11-25 08:39:36,336 p=30595 u=zuul n=ansible | Process install dependency map 2025-11-25 08:39:50,865 p=30595 u=zuul n=ansible | Starting collection install process 2025-11-25 08:39:50,865 p=30595 u=zuul n=ansible | Installing 'cifmw.general:1.0.0+8eeaca43' to '/home/zuul/.ansible/collections/ansible_collections/cifmw/general' 2025-11-25 08:39:51,404 p=30595 u=zuul n=ansible | Created collection for cifmw.general:1.0.0+8eeaca43 at /home/zuul/.ansible/collections/ansible_collections/cifmw/general 2025-11-25 08:39:51,404 p=30595 u=zuul n=ansible | cifmw.general:1.0.0+8eeaca43 was installed successfully 2025-11-25 08:39:51,404 p=30595 u=zuul n=ansible | Installing 'containers.podman:1.16.2' to '/home/zuul/.ansible/collections/ansible_collections/containers/podman' 2025-11-25 08:39:51,463 p=30595 u=zuul n=ansible | Created collection for containers.podman:1.16.2 at /home/zuul/.ansible/collections/ansible_collections/containers/podman 2025-11-25 08:39:51,464 p=30595 u=zuul n=ansible | containers.podman:1.16.2 was installed successfully 2025-11-25 08:39:51,464 p=30595 u=zuul n=ansible | Installing 'community.general:10.0.1' to '/home/zuul/.ansible/collections/ansible_collections/community/general' 2025-11-25 08:39:52,273 p=30595 u=zuul n=ansible | Created collection for community.general:10.0.1 at /home/zuul/.ansible/collections/ansible_collections/community/general 2025-11-25 08:39:52,273 p=30595 u=zuul n=ansible | community.general:10.0.1 was installed successfully 2025-11-25 08:39:52,273 p=30595 u=zuul n=ansible | Installing 'ansible.posix:1.6.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/posix' 2025-11-25 08:39:52,323 p=30595 u=zuul n=ansible | Created collection for ansible.posix:1.6.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/posix 2025-11-25 08:39:52,323 p=30595 u=zuul n=ansible | ansible.posix:1.6.2 was installed successfully 2025-11-25 08:39:52,323 p=30595 u=zuul n=ansible | Installing 'ansible.utils:5.1.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/utils' 2025-11-25 08:39:52,429 p=30595 u=zuul n=ansible | Created collection for ansible.utils:5.1.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/utils 2025-11-25 08:39:52,429 p=30595 u=zuul n=ansible | ansible.utils:5.1.2 was installed successfully 2025-11-25 08:39:52,429 p=30595 u=zuul n=ansible | Installing 'community.libvirt:1.3.0' to '/home/zuul/.ansible/collections/ansible_collections/community/libvirt' 2025-11-25 08:39:52,456 p=30595 u=zuul n=ansible | Created collection for community.libvirt:1.3.0 at /home/zuul/.ansible/collections/ansible_collections/community/libvirt 2025-11-25 08:39:52,456 p=30595 u=zuul n=ansible | community.libvirt:1.3.0 was installed successfully 2025-11-25 08:39:52,457 p=30595 u=zuul n=ansible | Installing 'community.crypto:2.22.3' to '/home/zuul/.ansible/collections/ansible_collections/community/crypto' 2025-11-25 08:39:52,610 p=30595 u=zuul n=ansible | Created collection for community.crypto:2.22.3 at /home/zuul/.ansible/collections/ansible_collections/community/crypto 2025-11-25 08:39:52,610 p=30595 u=zuul n=ansible | community.crypto:2.22.3 was installed successfully 2025-11-25 08:39:52,611 p=30595 u=zuul n=ansible | Installing 'kubernetes.core:5.0.0' to '/home/zuul/.ansible/collections/ansible_collections/kubernetes/core' 2025-11-25 08:39:52,735 p=30595 u=zuul n=ansible | Created collection for kubernetes.core:5.0.0 at /home/zuul/.ansible/collections/ansible_collections/kubernetes/core 2025-11-25 08:39:52,735 p=30595 u=zuul n=ansible | kubernetes.core:5.0.0 was installed successfully 2025-11-25 08:39:52,736 p=30595 u=zuul n=ansible | Installing 'ansible.netcommon:7.1.0' to '/home/zuul/.ansible/collections/ansible_collections/ansible/netcommon' 2025-11-25 08:39:52,811 p=30595 u=zuul n=ansible | Created collection for ansible.netcommon:7.1.0 at /home/zuul/.ansible/collections/ansible_collections/ansible/netcommon 2025-11-25 08:39:52,811 p=30595 u=zuul n=ansible | ansible.netcommon:7.1.0 was installed successfully 2025-11-25 08:39:52,811 p=30595 u=zuul n=ansible | Installing 'openstack.config_template:2.1.1' to '/home/zuul/.ansible/collections/ansible_collections/openstack/config_template' 2025-11-25 08:39:52,829 p=30595 u=zuul n=ansible | Created collection for openstack.config_template:2.1.1 at /home/zuul/.ansible/collections/ansible_collections/openstack/config_template 2025-11-25 08:39:52,829 p=30595 u=zuul n=ansible | openstack.config_template:2.1.1 was installed successfully 2025-11-25 08:39:52,829 p=30595 u=zuul n=ansible | Installing 'junipernetworks.junos:9.1.0' to '/home/zuul/.ansible/collections/ansible_collections/junipernetworks/junos' 2025-11-25 08:39:53,069 p=30595 u=zuul n=ansible | Created collection for junipernetworks.junos:9.1.0 at /home/zuul/.ansible/collections/ansible_collections/junipernetworks/junos 2025-11-25 08:39:53,069 p=30595 u=zuul n=ansible | junipernetworks.junos:9.1.0 was installed successfully 2025-11-25 08:39:53,069 p=30595 u=zuul n=ansible | Installing 'cisco.ios:9.0.3' to '/home/zuul/.ansible/collections/ansible_collections/cisco/ios' 2025-11-25 08:39:53,341 p=30595 u=zuul n=ansible | Created collection for cisco.ios:9.0.3 at /home/zuul/.ansible/collections/ansible_collections/cisco/ios 2025-11-25 08:39:53,341 p=30595 u=zuul n=ansible | cisco.ios:9.0.3 was installed successfully 2025-11-25 08:39:53,341 p=30595 u=zuul n=ansible | Installing 'mellanox.onyx:1.0.0' to '/home/zuul/.ansible/collections/ansible_collections/mellanox/onyx' 2025-11-25 08:39:53,374 p=30595 u=zuul n=ansible | Created collection for mellanox.onyx:1.0.0 at /home/zuul/.ansible/collections/ansible_collections/mellanox/onyx 2025-11-25 08:39:53,374 p=30595 u=zuul n=ansible | mellanox.onyx:1.0.0 was installed successfully 2025-11-25 08:39:53,374 p=30595 u=zuul n=ansible | Installing 'community.okd:4.0.0' to '/home/zuul/.ansible/collections/ansible_collections/community/okd' 2025-11-25 08:39:53,404 p=30595 u=zuul n=ansible | Created collection for community.okd:4.0.0 at /home/zuul/.ansible/collections/ansible_collections/community/okd 2025-11-25 08:39:53,404 p=30595 u=zuul n=ansible | community.okd:4.0.0 was installed successfully 2025-11-25 08:39:53,404 p=30595 u=zuul n=ansible | Installing '@NAMESPACE@.@NAME@:3.1.4' to '/home/zuul/.ansible/collections/ansible_collections/@NAMESPACE@/@NAME@' 2025-11-25 08:39:53,499 p=30595 u=zuul n=ansible | Created collection for @NAMESPACE@.@NAME@:3.1.4 at /home/zuul/.ansible/collections/ansible_collections/@NAMESPACE@/@NAME@ 2025-11-25 08:39:53,499 p=30595 u=zuul n=ansible | @NAMESPACE@.@NAME@:3.1.4 was installed successfully 2025-11-25 08:40:05,222 p=31436 u=zuul n=ansible | PLAY [Bootstrap playbook] ****************************************************** 2025-11-25 08:40:05,241 p=31436 u=zuul n=ansible | TASK [Gathering Facts ] ******************************************************** 2025-11-25 08:40:05,241 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:05 +0000 (0:00:00.037) 0:00:00.037 ****** 2025-11-25 08:40:05,241 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:05 +0000 (0:00:00.035) 0:00:00.035 ****** 2025-11-25 08:40:06,203 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:06,224 p=31436 u=zuul n=ansible | TASK [cifmw_setup : Set custom cifmw PATH reusable fact cifmw_path={{ ansible_user_dir }}/.crc/bin:{{ ansible_user_dir }}/.crc/bin/oc:{{ ansible_user_dir }}/bin:{{ ansible_env.PATH }}, cacheable=True] *** 2025-11-25 08:40:06,224 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.983) 0:00:01.021 ****** 2025-11-25 08:40:06,224 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.983) 0:00:01.019 ****** 2025-11-25 08:40:06,252 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:06,258 p=31436 u=zuul n=ansible | TASK [cifmw_setup : Get customized parameters ci_framework_params={{ hostvars[inventory_hostname] | dict2items | selectattr("key", "match", "^(cifmw|pre|post)_(?!install_yamls|openshift_token|openshift_login|openshift_kubeconfig).*") | list | items2dict }}] *** 2025-11-25 08:40:06,258 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.034) 0:00:01.055 ****** 2025-11-25 08:40:06,258 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.034) 0:00:01.053 ****** 2025-11-25 08:40:06,309 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:06,317 p=31436 u=zuul n=ansible | TASK [install_ca : Ensure target directory exists path={{ cifmw_install_ca_trust_dir }}, state=directory, mode=0755] *** 2025-11-25 08:40:06,317 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.058) 0:00:01.114 ****** 2025-11-25 08:40:06,317 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.058) 0:00:01.112 ****** 2025-11-25 08:40:06,664 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:06,670 p=31436 u=zuul n=ansible | TASK [install_ca : Install internal CA from url url={{ cifmw_install_ca_url }}, dest={{ cifmw_install_ca_trust_dir }}, validate_certs={{ cifmw_install_ca_url_validate_certs | default(omit) }}, mode=0644] *** 2025-11-25 08:40:06,670 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.353) 0:00:01.467 ****** 2025-11-25 08:40:06,671 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.353) 0:00:01.465 ****** 2025-11-25 08:40:06,689 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:06,698 p=31436 u=zuul n=ansible | TASK [install_ca : Install custom CA bundle from inline dest={{ cifmw_install_ca_trust_dir }}/cifmw_inline_ca_bundle.crt, content={{ cifmw_install_ca_bundle_inline }}, mode=0644] *** 2025-11-25 08:40:06,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.028) 0:00:01.495 ****** 2025-11-25 08:40:06,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.028) 0:00:01.493 ****** 2025-11-25 08:40:06,718 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:06,725 p=31436 u=zuul n=ansible | TASK [install_ca : Install custom CA bundle from file dest={{ cifmw_install_ca_trust_dir }}/{{ cifmw_install_ca_bundle_src | basename }}, src={{ cifmw_install_ca_bundle_src }}, mode=0644] *** 2025-11-25 08:40:06,725 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.026) 0:00:01.522 ****** 2025-11-25 08:40:06,726 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.026) 0:00:01.520 ****** 2025-11-25 08:40:06,743 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:06,751 p=31436 u=zuul n=ansible | TASK [install_ca : Update ca bundle _raw_params=update-ca-trust] *************** 2025-11-25 08:40:06,751 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.025) 0:00:01.548 ****** 2025-11-25 08:40:06,751 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:06 +0000 (0:00:00.025) 0:00:01.546 ****** 2025-11-25 08:40:08,269 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:08,282 p=31436 u=zuul n=ansible | TASK [repo_setup : Ensure directories are present path={{ cifmw_repo_setup_basedir }}/{{ item }}, state=directory, mode=0755] *** 2025-11-25 08:40:08,283 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:08 +0000 (0:00:01.531) 0:00:03.079 ****** 2025-11-25 08:40:08,283 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:08 +0000 (0:00:01.531) 0:00:03.077 ****** 2025-11-25 08:40:08,478 p=31436 u=zuul n=ansible | changed: [localhost] => (item=tmp) 2025-11-25 08:40:08,653 p=31436 u=zuul n=ansible | changed: [localhost] => (item=artifacts/repositories) 2025-11-25 08:40:08,821 p=31436 u=zuul n=ansible | changed: [localhost] => (item=venv/repo_setup) 2025-11-25 08:40:08,831 p=31436 u=zuul n=ansible | TASK [repo_setup : Make sure git-core package is installed name=git-core, state=present] *** 2025-11-25 08:40:08,831 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:08 +0000 (0:00:00.548) 0:00:03.628 ****** 2025-11-25 08:40:08,832 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:08 +0000 (0:00:00.548) 0:00:03.626 ****** 2025-11-25 08:40:09,816 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:09,824 p=31436 u=zuul n=ansible | TASK [repo_setup : Get repo-setup repository accept_hostkey=True, dest={{ cifmw_repo_setup_basedir }}/tmp/repo-setup, repo={{ cifmw_repo_setup_src }}] *** 2025-11-25 08:40:09,824 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:09 +0000 (0:00:00.992) 0:00:04.620 ****** 2025-11-25 08:40:09,824 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:09 +0000 (0:00:00.992) 0:00:04.618 ****** 2025-11-25 08:40:10,943 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:10,950 p=31436 u=zuul n=ansible | TASK [repo_setup : Initialize python venv and install requirements virtualenv={{ cifmw_repo_setup_venv }}, requirements={{ cifmw_repo_setup_basedir }}/tmp/repo-setup/requirements.txt, virtualenv_command=python3 -m venv --system-site-packages --upgrade-deps] *** 2025-11-25 08:40:10,950 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:10 +0000 (0:00:01.126) 0:00:05.747 ****** 2025-11-25 08:40:10,950 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:10 +0000 (0:00:01.126) 0:00:05.745 ****** 2025-11-25 08:40:19,574 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:19,581 p=31436 u=zuul n=ansible | TASK [repo_setup : Install repo-setup package chdir={{ cifmw_repo_setup_basedir }}/tmp/repo-setup, creates={{ cifmw_repo_setup_venv }}/bin/repo-setup, _raw_params={{ cifmw_repo_setup_venv }}/bin/python setup.py install] *** 2025-11-25 08:40:19,581 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:19 +0000 (0:00:08.631) 0:00:14.378 ****** 2025-11-25 08:40:19,581 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:19 +0000 (0:00:08.631) 0:00:14.376 ****** 2025-11-25 08:40:20,427 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:20,434 p=31436 u=zuul n=ansible | TASK [repo_setup : Set cifmw_repo_setup_dlrn_hash_tag from content provider cifmw_repo_setup_dlrn_hash_tag={{ content_provider_dlrn_md5_hash }}] *** 2025-11-25 08:40:20,434 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:20 +0000 (0:00:00.852) 0:00:15.231 ****** 2025-11-25 08:40:20,434 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:20 +0000 (0:00:00.852) 0:00:15.229 ****** 2025-11-25 08:40:20,452 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:20,458 p=31436 u=zuul n=ansible | TASK [repo_setup : Run repo-setup _raw_params={{ cifmw_repo_setup_venv }}/bin/repo-setup {{ cifmw_repo_setup_promotion }} {{ cifmw_repo_setup_additional_repos }} -d {{ cifmw_repo_setup_os_release }}{{ cifmw_repo_setup_dist_major_version }} -b {{ cifmw_repo_setup_branch }} --rdo-mirror {{ cifmw_repo_setup_rdo_mirror }} {% if cifmw_repo_setup_dlrn_hash_tag | length > 0 %} --dlrn-hash-tag {{ cifmw_repo_setup_dlrn_hash_tag }} {% endif %} -o {{ cifmw_repo_setup_output }}] *** 2025-11-25 08:40:20,458 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:20 +0000 (0:00:00.024) 0:00:15.255 ****** 2025-11-25 08:40:20,459 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:20 +0000 (0:00:00.024) 0:00:15.253 ****** 2025-11-25 08:40:21,074 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:21,081 p=31436 u=zuul n=ansible | TASK [repo_setup : Get component repo url={{ cifmw_repo_setup_dlrn_uri }}/{{ cifmw_repo_setup_os_release }}{{ cifmw_repo_setup_dist_major_version }}-{{ cifmw_repo_setup_branch }}/component/{{ cifmw_repo_setup_component_name }}/{{ cifmw_repo_setup_component_promotion_tag }}/delorean.repo, dest={{ cifmw_repo_setup_output }}/{{ cifmw_repo_setup_component_name }}_{{ cifmw_repo_setup_component_promotion_tag }}_delorean.repo, mode=0644] *** 2025-11-25 08:40:21,081 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.622) 0:00:15.878 ****** 2025-11-25 08:40:21,081 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.622) 0:00:15.876 ****** 2025-11-25 08:40:21,110 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:21,116 p=31436 u=zuul n=ansible | TASK [repo_setup : Rename component repo path={{ cifmw_repo_setup_output }}/{{ cifmw_repo_setup_component_name }}_{{ cifmw_repo_setup_component_promotion_tag }}_delorean.repo, regexp=delorean-component-{{ cifmw_repo_setup_component_name }}, replace={{ cifmw_repo_setup_component_name }}-{{ cifmw_repo_setup_component_promotion_tag }}] *** 2025-11-25 08:40:21,117 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.035) 0:00:15.913 ****** 2025-11-25 08:40:21,117 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.035) 0:00:15.911 ****** 2025-11-25 08:40:21,145 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:21,151 p=31436 u=zuul n=ansible | TASK [repo_setup : Disable component repo in current-podified dlrn repo path={{ cifmw_repo_setup_output }}/delorean.repo, section=delorean-component-{{ cifmw_repo_setup_component_name }}, option=enabled, value=0, mode=0644] *** 2025-11-25 08:40:21,151 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.034) 0:00:15.948 ****** 2025-11-25 08:40:21,151 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.034) 0:00:15.946 ****** 2025-11-25 08:40:21,180 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:21,188 p=31436 u=zuul n=ansible | TASK [repo_setup : Run repo-setup-get-hash _raw_params={{ cifmw_repo_setup_venv }}/bin/repo-setup-get-hash --dlrn-url {{ cifmw_repo_setup_dlrn_uri[:-1] }} --os-version {{ cifmw_repo_setup_os_release }}{{ cifmw_repo_setup_dist_major_version }} --release {{ cifmw_repo_setup_branch }} {% if cifmw_repo_setup_component_name | length > 0 -%} --component {{ cifmw_repo_setup_component_name }} --tag {{ cifmw_repo_setup_component_promotion_tag }} {% else -%} --tag {{cifmw_repo_setup_promotion }} {% endif -%} {% if (cifmw_repo_setup_dlrn_hash_tag | length > 0) and (cifmw_repo_setup_component_name | length <= 0) -%} --dlrn-hash-tag {{ cifmw_repo_setup_dlrn_hash_tag }} {% endif -%} --json] *** 2025-11-25 08:40:21,188 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.037) 0:00:15.985 ****** 2025-11-25 08:40:21,188 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.037) 0:00:15.983 ****** 2025-11-25 08:40:21,673 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:21,680 p=31436 u=zuul n=ansible | TASK [repo_setup : Dump full hash in delorean.repo.md5 file content={{ _repo_setup_json['full_hash'] }} , dest={{ cifmw_repo_setup_basedir }}/artifacts/repositories/delorean.repo.md5, mode=0644] *** 2025-11-25 08:40:21,680 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.491) 0:00:16.477 ****** 2025-11-25 08:40:21,680 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:21 +0000 (0:00:00.491) 0:00:16.475 ****** 2025-11-25 08:40:22,356 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:22,362 p=31436 u=zuul n=ansible | TASK [repo_setup : Dump current-podified hash url={{ cifmw_repo_setup_dlrn_uri }}/{{ cifmw_repo_setup_os_release }}{{ cifmw_repo_setup_dist_major_version }}-{{ cifmw_repo_setup_branch }}/current-podified/delorean.repo.md5, dest={{ cifmw_repo_setup_basedir }}/artifacts/repositories/delorean.repo.md5, mode=0644] *** 2025-11-25 08:40:22,362 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.682) 0:00:17.159 ****** 2025-11-25 08:40:22,362 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.682) 0:00:17.157 ****** 2025-11-25 08:40:22,380 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,386 p=31436 u=zuul n=ansible | TASK [repo_setup : Slurp current podified hash src={{ cifmw_repo_setup_basedir }}/artifacts/repositories/delorean.repo.md5] *** 2025-11-25 08:40:22,386 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.024) 0:00:17.183 ****** 2025-11-25 08:40:22,387 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.024) 0:00:17.181 ****** 2025-11-25 08:40:22,404 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,412 p=31436 u=zuul n=ansible | TASK [repo_setup : Update the value of full_hash _repo_setup_json={{ _repo_setup_json | combine({'full_hash': _hash}, recursive=true) }}] *** 2025-11-25 08:40:22,413 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.026) 0:00:17.209 ****** 2025-11-25 08:40:22,413 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.026) 0:00:17.207 ****** 2025-11-25 08:40:22,431 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,438 p=31436 u=zuul n=ansible | TASK [repo_setup : Export hashes facts for further use cifmw_repo_setup_full_hash={{ _repo_setup_json['full_hash'] }}, cifmw_repo_setup_commit_hash={{ _repo_setup_json['commit_hash'] }}, cifmw_repo_setup_distro_hash={{ _repo_setup_json['distro_hash'] }}, cifmw_repo_setup_extended_hash={{ _repo_setup_json['extended_hash'] }}, cifmw_repo_setup_dlrn_api_url={{ _repo_setup_json['dlrn_api_url'] }}, cifmw_repo_setup_dlrn_url={{ _repo_setup_json['dlrn_url'] }}, cifmw_repo_setup_release={{ _repo_setup_json['release'] }}, cacheable=True] *** 2025-11-25 08:40:22,438 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.025) 0:00:17.235 ****** 2025-11-25 08:40:22,438 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.025) 0:00:17.233 ****** 2025-11-25 08:40:22,465 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:22,470 p=31436 u=zuul n=ansible | TASK [repo_setup : Create download directory path={{ cifmw_repo_setup_rhos_release_path }}, state=directory, mode=0755] *** 2025-11-25 08:40:22,471 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.032) 0:00:17.267 ****** 2025-11-25 08:40:22,471 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.032) 0:00:17.265 ****** 2025-11-25 08:40:22,485 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,492 p=31436 u=zuul n=ansible | TASK [repo_setup : Print the URL to request msg={{ cifmw_repo_setup_rhos_release_rpm }}] *** 2025-11-25 08:40:22,492 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.289 ****** 2025-11-25 08:40:22,492 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.287 ****** 2025-11-25 08:40:22,506 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,513 p=31436 u=zuul n=ansible | TASK [Download the RPM name=krb_request] *************************************** 2025-11-25 08:40:22,513 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.020) 0:00:17.310 ****** 2025-11-25 08:40:22,513 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.020) 0:00:17.308 ****** 2025-11-25 08:40:22,527 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,536 p=31436 u=zuul n=ansible | TASK [repo_setup : Install RHOS Release tool name={{ cifmw_repo_setup_rhos_release_rpm if cifmw_repo_setup_rhos_release_rpm is not url else cifmw_krb_request_out.path }}, state=present, disable_gpg_check={{ cifmw_repo_setup_rhos_release_gpg_check | bool }}] *** 2025-11-25 08:40:22,536 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.022) 0:00:17.332 ****** 2025-11-25 08:40:22,536 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.022) 0:00:17.331 ****** 2025-11-25 08:40:22,550 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,557 p=31436 u=zuul n=ansible | TASK [repo_setup : Get rhos-release tool version _raw_params=rhos-release --version] *** 2025-11-25 08:40:22,558 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.354 ****** 2025-11-25 08:40:22,558 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.352 ****** 2025-11-25 08:40:22,570 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,577 p=31436 u=zuul n=ansible | TASK [repo_setup : Print rhos-release tool version msg={{ rr_version.stdout }}] *** 2025-11-25 08:40:22,577 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.019) 0:00:17.374 ****** 2025-11-25 08:40:22,577 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.019) 0:00:17.372 ****** 2025-11-25 08:40:22,589 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,598 p=31436 u=zuul n=ansible | TASK [repo_setup : Generate repos using rhos-release {{ cifmw_repo_setup_rhos_release_args }} _raw_params=rhos-release {{ cifmw_repo_setup_rhos_release_args }} \ -t {{ cifmw_repo_setup_output }}] *** 2025-11-25 08:40:22,598 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.395 ****** 2025-11-25 08:40:22,598 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.021) 0:00:17.393 ****** 2025-11-25 08:40:22,613 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:22,619 p=31436 u=zuul n=ansible | TASK [repo_setup : Check for /etc/ci/mirror_info.sh path=/etc/ci/mirror_info.sh] *** 2025-11-25 08:40:22,619 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.020) 0:00:17.416 ****** 2025-11-25 08:40:22,619 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.020) 0:00:17.414 ****** 2025-11-25 08:40:22,795 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:22,828 p=31436 u=zuul n=ansible | TASK [repo_setup : Use RDO proxy mirrors chdir={{ cifmw_repo_setup_output }}, _raw_params=set -o pipefail source /etc/ci/mirror_info.sh sed -i -e "s|https://trunk.rdoproject.org|$NODEPOOL_RDO_PROXY|g" *.repo ] *** 2025-11-25 08:40:22,828 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.208) 0:00:17.625 ****** 2025-11-25 08:40:22,828 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:22 +0000 (0:00:00.208) 0:00:17.623 ****** 2025-11-25 08:40:23,058 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:23,066 p=31436 u=zuul n=ansible | TASK [repo_setup : Use RDO CentOS mirrors (remove CentOS 10 conditional when Nodepool mirrors exist) chdir={{ cifmw_repo_setup_output }}, _raw_params=set -o pipefail source /etc/ci/mirror_info.sh sed -i -e "s|http://mirror.stream.centos.org|$NODEPOOL_CENTOS_MIRROR|g" *.repo ] *** 2025-11-25 08:40:23,066 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.238) 0:00:17.863 ****** 2025-11-25 08:40:23,066 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.238) 0:00:17.861 ****** 2025-11-25 08:40:23,284 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:23,292 p=31436 u=zuul n=ansible | TASK [repo_setup : Check for gating.repo file on content provider url=http://{{ content_provider_registry_ip }}:8766/gating.repo] *** 2025-11-25 08:40:23,292 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.225) 0:00:18.089 ****** 2025-11-25 08:40:23,292 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.226) 0:00:18.087 ****** 2025-11-25 08:40:23,774 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => changed: false elapsed: 0 msg: 'Status code was -1 and not [200]: Request failed: ' redirected: false status: -1 url: http://38.129.56.231:8766/gating.repo 2025-11-25 08:40:23,774 p=31436 u=zuul n=ansible | ...ignoring 2025-11-25 08:40:23,781 p=31436 u=zuul n=ansible | TASK [repo_setup : Populate gating repo from content provider ip content=[gating-repo] baseurl=http://{{ content_provider_registry_ip }}:8766/ enabled=1 gpgcheck=0 priority=1 , dest={{ cifmw_repo_setup_output }}/gating.repo, mode=0644] *** 2025-11-25 08:40:23,781 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.489) 0:00:18.578 ****** 2025-11-25 08:40:23,781 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.488) 0:00:18.576 ****** 2025-11-25 08:40:23,807 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:23,813 p=31436 u=zuul n=ansible | TASK [repo_setup : Check for DLRN repo at the destination path={{ cifmw_repo_setup_output }}/delorean.repo] *** 2025-11-25 08:40:23,813 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.609 ****** 2025-11-25 08:40:23,813 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.607 ****** 2025-11-25 08:40:23,837 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:23,844 p=31436 u=zuul n=ansible | TASK [repo_setup : Lower the priority of DLRN repos to allow installation from gating repo path={{ cifmw_repo_setup_output }}/delorean.repo, regexp=priority=1, replace=priority=20] *** 2025-11-25 08:40:23,844 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.641 ****** 2025-11-25 08:40:23,844 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.639 ****** 2025-11-25 08:40:23,868 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:23,874 p=31436 u=zuul n=ansible | TASK [repo_setup : Check for DLRN component repo path={{ cifmw_repo_setup_output }}/{{ _comp_repo }}] *** 2025-11-25 08:40:23,874 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.030) 0:00:18.671 ****** 2025-11-25 08:40:23,875 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.030) 0:00:18.669 ****** 2025-11-25 08:40:23,898 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:23,904 p=31436 u=zuul n=ansible | TASK [repo_setup : Lower the priority of componennt repos to allow installation from gating repo path={{ cifmw_repo_setup_output }}//{{ _comp_repo }}, regexp=priority=1, replace=priority=2] *** 2025-11-25 08:40:23,904 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.029) 0:00:18.701 ****** 2025-11-25 08:40:23,904 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.029) 0:00:18.699 ****** 2025-11-25 08:40:23,929 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:40:23,935 p=31436 u=zuul n=ansible | TASK [repo_setup : Find existing repos from /etc/yum.repos.d directory paths=/etc/yum.repos.d/, patterns=*.repo, recurse=False] *** 2025-11-25 08:40:23,935 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.732 ****** 2025-11-25 08:40:23,935 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:23 +0000 (0:00:00.031) 0:00:18.730 ****** 2025-11-25 08:40:24,196 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:24,203 p=31436 u=zuul n=ansible | TASK [repo_setup : Remove existing repos from /etc/yum.repos.d directory path={{ item }}, state=absent] *** 2025-11-25 08:40:24,203 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:24 +0000 (0:00:00.267) 0:00:19.000 ****** 2025-11-25 08:40:24,203 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:24 +0000 (0:00:00.267) 0:00:18.998 ****** 2025-11-25 08:40:24,426 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/etc/yum.repos.d/centos-addons.repo) 2025-11-25 08:40:24,620 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/etc/yum.repos.d/centos.repo) 2025-11-25 08:40:24,628 p=31436 u=zuul n=ansible | TASK [repo_setup : Cleanup existing metadata _raw_params=dnf clean metadata] *** 2025-11-25 08:40:24,628 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:24 +0000 (0:00:00.424) 0:00:19.425 ****** 2025-11-25 08:40:24,628 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:24 +0000 (0:00:00.424) 0:00:19.423 ****** 2025-11-25 08:40:25,070 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:25,077 p=31436 u=zuul n=ansible | TASK [repo_setup : Copy generated repos to /etc/yum.repos.d directory mode=0755, remote_src=True, src={{ cifmw_repo_setup_output }}/, dest=/etc/yum.repos.d] *** 2025-11-25 08:40:25,077 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.449) 0:00:19.874 ****** 2025-11-25 08:40:25,077 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.449) 0:00:19.872 ****** 2025-11-25 08:40:25,366 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:25,378 p=31436 u=zuul n=ansible | TASK [ci_setup : Gather variables for each operating system _raw_params={{ item }}] *** 2025-11-25 08:40:25,378 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.301) 0:00:20.175 ****** 2025-11-25 08:40:25,379 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.301) 0:00:20.173 ****** 2025-11-25 08:40:25,417 p=31436 u=zuul n=ansible | ok: [localhost] => (item=/home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/ci_setup/vars/redhat.yml) 2025-11-25 08:40:25,427 p=31436 u=zuul n=ansible | TASK [ci_setup : List packages to install var=cifmw_ci_setup_packages] ********* 2025-11-25 08:40:25,427 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.048) 0:00:20.224 ****** 2025-11-25 08:40:25,428 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.048) 0:00:20.222 ****** 2025-11-25 08:40:25,444 p=31436 u=zuul n=ansible | ok: [localhost] => cifmw_ci_setup_packages: - bash-completion - ca-certificates - git-core - make - tar - tmux - python3-pip 2025-11-25 08:40:25,452 p=31436 u=zuul n=ansible | TASK [ci_setup : Install needed packages name={{ cifmw_ci_setup_packages }}, state=latest] *** 2025-11-25 08:40:25,452 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.024) 0:00:20.248 ****** 2025-11-25 08:40:25,452 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:25 +0000 (0:00:00.024) 0:00:20.246 ****** 2025-11-25 08:40:55,234 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:55,242 p=31436 u=zuul n=ansible | TASK [ci_setup : Gather version of openshift client _raw_params=oc version --client -o yaml] *** 2025-11-25 08:40:55,242 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:29.790) 0:00:50.039 ****** 2025-11-25 08:40:55,242 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:29.790) 0:00:50.037 ****** 2025-11-25 08:40:55,454 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:40:55,462 p=31436 u=zuul n=ansible | TASK [ci_setup : Ensure openshift client install path is present path={{ cifmw_ci_setup_oc_install_path }}, state=directory, mode=0755] *** 2025-11-25 08:40:55,462 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:00.219) 0:00:50.258 ****** 2025-11-25 08:40:55,462 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:00.219) 0:00:50.256 ****** 2025-11-25 08:40:55,676 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:40:55,684 p=31436 u=zuul n=ansible | TASK [ci_setup : Install openshift client src={{ cifmw_ci_setup_openshift_client_download_uri }}/{{ cifmw_ci_setup_openshift_client_version }}/openshift-client-linux.tar.gz, dest={{ cifmw_ci_setup_oc_install_path }}, remote_src=True, mode=0755, creates={{ cifmw_ci_setup_oc_install_path }}/oc] *** 2025-11-25 08:40:55,684 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:00.222) 0:00:50.481 ****** 2025-11-25 08:40:55,684 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:40:55 +0000 (0:00:00.222) 0:00:50.479 ****** 2025-11-25 08:41:01,062 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:01,069 p=31436 u=zuul n=ansible | TASK [ci_setup : Add the OC path to cifmw_path if needed cifmw_path={{ cifmw_ci_setup_oc_install_path }}:{{ ansible_env.PATH }}, cacheable=True] *** 2025-11-25 08:41:01,069 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:05.384) 0:00:55.865 ****** 2025-11-25 08:41:01,069 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:05.384) 0:00:55.864 ****** 2025-11-25 08:41:01,098 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,106 p=31436 u=zuul n=ansible | TASK [ci_setup : Create completion file] *************************************** 2025-11-25 08:41:01,106 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.036) 0:00:55.902 ****** 2025-11-25 08:41:01,106 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.036) 0:00:55.900 ****** 2025-11-25 08:41:01,394 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:01,402 p=31436 u=zuul n=ansible | TASK [ci_setup : Source completion from within .bashrc create=True, mode=0644, path={{ ansible_user_dir }}/.bashrc, block=if [ -f ~/.oc_completion ]; then source ~/.oc_completion fi] *** 2025-11-25 08:41:01,402 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.296) 0:00:56.199 ****** 2025-11-25 08:41:01,402 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.296) 0:00:56.197 ****** 2025-11-25 08:41:01,673 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:01,681 p=31436 u=zuul n=ansible | TASK [ci_setup : Check rhsm status _raw_params=subscription-manager status] **** 2025-11-25 08:41:01,681 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.278) 0:00:56.477 ****** 2025-11-25 08:41:01,681 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.278) 0:00:56.476 ****** 2025-11-25 08:41:01,695 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,703 p=31436 u=zuul n=ansible | TASK [ci_setup : Gather the repos to be enabled _repos={{ cifmw_ci_setup_rhel_rhsm_default_repos + (cifmw_ci_setup_rhel_rhsm_extra_repos | default([])) }}] *** 2025-11-25 08:41:01,703 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.021) 0:00:56.499 ****** 2025-11-25 08:41:01,703 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.021) 0:00:56.497 ****** 2025-11-25 08:41:01,716 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,723 p=31436 u=zuul n=ansible | TASK [ci_setup : Enabling the required repositories. name={{ item }}, state={{ rhsm_repo_state | default('enabled') }}] *** 2025-11-25 08:41:01,724 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.520 ****** 2025-11-25 08:41:01,724 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.518 ****** 2025-11-25 08:41:01,738 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,745 p=31436 u=zuul n=ansible | TASK [ci_setup : Get current /etc/redhat-release _raw_params=cat /etc/redhat-release] *** 2025-11-25 08:41:01,745 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.021) 0:00:56.542 ****** 2025-11-25 08:41:01,745 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.021) 0:00:56.540 ****** 2025-11-25 08:41:01,759 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,765 p=31436 u=zuul n=ansible | TASK [ci_setup : Print current /etc/redhat-release msg={{ _current_rh_release.stdout }}] *** 2025-11-25 08:41:01,765 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.562 ****** 2025-11-25 08:41:01,766 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.560 ****** 2025-11-25 08:41:01,780 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,786 p=31436 u=zuul n=ansible | TASK [ci_setup : Ensure the repos are enabled in the system using yum name={{ item.name }}, baseurl={{ item.baseurl }}, description={{ item.description | default(item.name) }}, gpgcheck={{ item.gpgcheck | default(false) }}, enabled=True, state={{ yum_repo_state | default('present') }}] *** 2025-11-25 08:41:01,786 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.583 ****** 2025-11-25 08:41:01,786 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.020) 0:00:56.581 ****** 2025-11-25 08:41:01,810 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:01,818 p=31436 u=zuul n=ansible | TASK [ci_setup : Manage directories path={{ item }}, state={{ directory_state }}, mode=0755, owner={{ ansible_user_id }}, group={{ ansible_user_id }}] *** 2025-11-25 08:41:01,819 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.032) 0:00:56.615 ****** 2025-11-25 08:41:01,819 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:01 +0000 (0:00:00.032) 0:00:56.613 ****** 2025-11-25 08:41:02,061 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/home/zuul/ci-framework-data/artifacts/manifests/openstack/cr) 2025-11-25 08:41:02,249 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/home/zuul/ci-framework-data/logs) 2025-11-25 08:41:02,441 p=31436 u=zuul n=ansible | ok: [localhost] => (item=/home/zuul/ci-framework-data/tmp) 2025-11-25 08:41:02,633 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/home/zuul/ci-framework-data/volumes) 2025-11-25 08:41:02,832 p=31436 u=zuul n=ansible | ok: [localhost] => (item=/home/zuul/ci-framework-data/artifacts/parameters) 2025-11-25 08:41:02,845 p=31436 u=zuul n=ansible | TASK [Prepare install_yamls make targets name=install_yamls, apply={'tags': ['bootstrap']}] *** 2025-11-25 08:41:02,845 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:02 +0000 (0:00:01.026) 0:00:57.641 ****** 2025-11-25 08:41:02,845 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:02 +0000 (0:00:01.026) 0:00:57.640 ****** 2025-11-25 08:41:02,970 p=31436 u=zuul n=ansible | TASK [install_yamls : Ensure directories exist path={{ item }}, state=directory, mode=0755] *** 2025-11-25 08:41:02,970 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:02 +0000 (0:00:00.125) 0:00:57.767 ****** 2025-11-25 08:41:02,970 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:02 +0000 (0:00:00.125) 0:00:57.765 ****** 2025-11-25 08:41:03,155 p=31436 u=zuul n=ansible | ok: [localhost] => (item=/home/zuul/ci-framework-data/artifacts) 2025-11-25 08:41:03,334 p=31436 u=zuul n=ansible | changed: [localhost] => (item=/home/zuul/ci-framework-data/artifacts/roles/install_yamls_makes/tasks) 2025-11-25 08:41:03,568 p=31436 u=zuul n=ansible | ok: [localhost] => (item=/home/zuul/ci-framework-data/artifacts/parameters) 2025-11-25 08:41:03,576 p=31436 u=zuul n=ansible | TASK [Create variables with local repos based on Zuul items name=install_yamls, tasks_from=zuul_set_operators_repo.yml] *** 2025-11-25 08:41:03,577 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.606) 0:00:58.373 ****** 2025-11-25 08:41:03,577 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.606) 0:00:58.371 ****** 2025-11-25 08:41:03,612 p=31436 u=zuul n=ansible | TASK [install_yamls : Set fact with local repos based on Zuul items cifmw_install_yamls_operators_repo={{ cifmw_install_yamls_operators_repo | default({}) | combine(_repo_operator_info | items2dict) }}] *** 2025-11-25 08:41:03,612 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.035) 0:00:58.408 ****** 2025-11-25 08:41:03,612 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.035) 0:00:58.407 ****** 2025-11-25 08:41:03,661 p=31436 u=zuul n=ansible | ok: [localhost] => (item={'branch': 'main', 'change': '652', 'change_url': 'https://github.com/openstack-k8s-operators/keystone-operator/pull/652', 'commit_id': '99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'patchset': '99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'project': {'canonical_hostname': 'github.com', 'canonical_name': 'github.com/openstack-k8s-operators/keystone-operator', 'name': 'openstack-k8s-operators/keystone-operator', 'short_name': 'keystone-operator', 'src_dir': 'src/github.com/openstack-k8s-operators/keystone-operator'}, 'topic': None}) 2025-11-25 08:41:03,669 p=31436 u=zuul n=ansible | TASK [install_yamls : Print helpful data for debugging msg=_repo_operator_name: {{ _repo_operator_name }} _repo_operator_info: {{ _repo_operator_info }} cifmw_install_yamls_operators_repo: {{ cifmw_install_yamls_operators_repo }} ] *** 2025-11-25 08:41:03,669 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.057) 0:00:58.466 ****** 2025-11-25 08:41:03,669 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.057) 0:00:58.464 ****** 2025-11-25 08:41:03,712 p=31436 u=zuul n=ansible | ok: [localhost] => (item={'branch': 'main', 'change': '652', 'change_url': 'https://github.com/openstack-k8s-operators/keystone-operator/pull/652', 'commit_id': '99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'patchset': '99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'project': {'canonical_hostname': 'github.com', 'canonical_name': 'github.com/openstack-k8s-operators/keystone-operator', 'name': 'openstack-k8s-operators/keystone-operator', 'short_name': 'keystone-operator', 'src_dir': 'src/github.com/openstack-k8s-operators/keystone-operator'}, 'topic': None}) => msg: | _repo_operator_name: keystone _repo_operator_info: [{'key': 'KEYSTONE_REPO', 'value': '/home/zuul/src/github.com/openstack-k8s-operators/keystone-operator'}, {'key': 'KEYSTONE_BRANCH', 'value': ''}] cifmw_install_yamls_operators_repo: {'KEYSTONE_REPO': '/home/zuul/src/github.com/openstack-k8s-operators/keystone-operator', 'KEYSTONE_BRANCH': ''} 2025-11-25 08:41:03,726 p=31436 u=zuul n=ansible | TASK [Customize install_yamls devsetup vars if needed name=install_yamls, tasks_from=customize_devsetup_vars.yml] *** 2025-11-25 08:41:03,726 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.056) 0:00:58.523 ****** 2025-11-25 08:41:03,726 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.057) 0:00:58.521 ****** 2025-11-25 08:41:03,767 p=31436 u=zuul n=ansible | TASK [install_yamls : Update opm_version in install_yamls devsetup/vars/default.yaml path={{ cifmw_install_yamls_repo }}/devsetup/vars/default.yaml, regexp=^opm_version:, line=opm_version: {{ cifmw_install_yamls_opm_version }}, state=present] *** 2025-11-25 08:41:03,767 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.041) 0:00:58.564 ****** 2025-11-25 08:41:03,768 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.041) 0:00:58.562 ****** 2025-11-25 08:41:03,786 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:03,794 p=31436 u=zuul n=ansible | TASK [install_yamls : Update sdk_version in install_yamls devsetup/vars/default.yaml path={{ cifmw_install_yamls_repo }}/devsetup/vars/default.yaml, regexp=^sdk_version:, line=sdk_version: {{ cifmw_install_yamls_sdk_version }}, state=present] *** 2025-11-25 08:41:03,794 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.026) 0:00:58.591 ****** 2025-11-25 08:41:03,794 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.026) 0:00:58.589 ****** 2025-11-25 08:41:03,815 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:03,821 p=31436 u=zuul n=ansible | TASK [install_yamls : Update go_version in install_yamls devsetup/vars/default.yaml path={{ cifmw_install_yamls_repo }}/devsetup/vars/default.yaml, regexp=^go_version:, line=go_version: {{ cifmw_install_yamls_go_version }}, state=present] *** 2025-11-25 08:41:03,821 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.026) 0:00:58.618 ****** 2025-11-25 08:41:03,821 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.026) 0:00:58.616 ****** 2025-11-25 08:41:03,840 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:03,847 p=31436 u=zuul n=ansible | TASK [install_yamls : Update kustomize_version in install_yamls devsetup/vars/default.yaml path={{ cifmw_install_yamls_repo }}/devsetup/vars/default.yaml, regexp=^kustomize_version:, line=kustomize_version: {{ cifmw_install_yamls_kustomize_version }}, state=present] *** 2025-11-25 08:41:03,847 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.025) 0:00:58.643 ****** 2025-11-25 08:41:03,847 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.025) 0:00:58.642 ****** 2025-11-25 08:41:03,865 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:03,876 p=31436 u=zuul n=ansible | TASK [install_yamls : Compute the cifmw_install_yamls_vars final value _install_yamls_override_vars={{ _install_yamls_override_vars | default({}) | combine(item, recursive=True) }}] *** 2025-11-25 08:41:03,877 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.029) 0:00:58.673 ****** 2025-11-25 08:41:03,877 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.029) 0:00:58.671 ****** 2025-11-25 08:41:03,932 p=31436 u=zuul n=ansible | ok: [localhost] => (item={'BMO_SETUP': False}) 2025-11-25 08:41:03,941 p=31436 u=zuul n=ansible | TASK [install_yamls : Set environment override cifmw_install_yamls_environment fact cifmw_install_yamls_environment={{ _install_yamls_override_vars.keys() | map('upper') | zip(_install_yamls_override_vars.values()) | items2dict(key_name=0, value_name=1) | combine({ 'OUT': cifmw_install_yamls_manifests_dir, 'OUTPUT_DIR': cifmw_install_yamls_edpm_dir, 'CHECKOUT_FROM_OPENSTACK_REF': cifmw_install_yamls_checkout_openstack_ref, 'OPENSTACK_K8S_BRANCH': (zuul is defined and not zuul.branch |regex_search('master|antelope|rhos')) | ternary(zuul.branch, 'main') }) | combine(install_yamls_operators_repos) }}, cacheable=True] *** 2025-11-25 08:41:03,942 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.064) 0:00:58.738 ****** 2025-11-25 08:41:03,942 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.065) 0:00:58.736 ****** 2025-11-25 08:41:03,979 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:03,985 p=31436 u=zuul n=ansible | TASK [install_yamls : Get environment structure base_path={{ cifmw_install_yamls_repo }}] *** 2025-11-25 08:41:03,985 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.043) 0:00:58.782 ****** 2025-11-25 08:41:03,985 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:03 +0000 (0:00:00.043) 0:00:58.780 ****** 2025-11-25 08:41:04,480 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:04,487 p=31436 u=zuul n=ansible | TASK [install_yamls : Ensure Output directory exists path={{ cifmw_install_yamls_out_dir }}, state=directory, mode=0755] *** 2025-11-25 08:41:04,487 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.502) 0:00:59.284 ****** 2025-11-25 08:41:04,487 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.502) 0:00:59.282 ****** 2025-11-25 08:41:04,692 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:04,699 p=31436 u=zuul n=ansible | TASK [install_yamls : Ensure user cifmw_install_yamls_vars contains existing Makefile variables that=_cifmw_install_yamls_unmatched_vars | length == 0, msg=cifmw_install_yamls_vars contains a variable that is not defined in install_yamls Makefile nor cifmw_install_yamls_whitelisted_vars: {{ _cifmw_install_yamls_unmatched_vars | join(', ')}}, quiet=True] *** 2025-11-25 08:41:04,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.211) 0:00:59.496 ****** 2025-11-25 08:41:04,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.211) 0:00:59.494 ****** 2025-11-25 08:41:04,734 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:04,748 p=31436 u=zuul n=ansible | TASK [install_yamls : Generate /home/zuul/ci-framework-data/artifacts/install_yamls.sh dest={{ cifmw_install_yamls_out_dir }}/{{ cifmw_install_yamls_envfile }}, content={% for k,v in cifmw_install_yamls_environment.items() %} export {{ k }}={{ v }} {% endfor %}, mode=0644] *** 2025-11-25 08:41:04,748 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.048) 0:00:59.545 ****** 2025-11-25 08:41:04,748 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:04 +0000 (0:00:00.048) 0:00:59.543 ****** 2025-11-25 08:41:05,152 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:05,159 p=31436 u=zuul n=ansible | TASK [install_yamls : Set install_yamls default values cifmw_install_yamls_defaults={{ get_makefiles_env_output.makefiles_values | combine(cifmw_install_yamls_environment) }}, cacheable=True] *** 2025-11-25 08:41:05,160 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.411) 0:00:59.956 ****** 2025-11-25 08:41:05,160 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.411) 0:00:59.954 ****** 2025-11-25 08:41:05,182 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:05,189 p=31436 u=zuul n=ansible | TASK [install_yamls : Show the env structure var=cifmw_install_yamls_environment] *** 2025-11-25 08:41:05,189 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.029) 0:00:59.986 ****** 2025-11-25 08:41:05,190 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.029) 0:00:59.984 ****** 2025-11-25 08:41:05,205 p=31436 u=zuul n=ansible | ok: [localhost] => cifmw_install_yamls_environment: BMO_SETUP: false CHECKOUT_FROM_OPENSTACK_REF: 'true' KEYSTONE_BRANCH: '' KEYSTONE_REPO: /home/zuul/src/github.com/openstack-k8s-operators/keystone-operator OPENSTACK_K8S_BRANCH: main OUT: /home/zuul/ci-framework-data/artifacts/manifests OUTPUT_DIR: /home/zuul/ci-framework-data/artifacts/edpm 2025-11-25 08:41:05,212 p=31436 u=zuul n=ansible | TASK [install_yamls : Show the env structure defaults var=cifmw_install_yamls_defaults] *** 2025-11-25 08:41:05,212 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.023) 0:01:00.009 ****** 2025-11-25 08:41:05,213 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.023) 0:01:00.007 ****** 2025-11-25 08:41:05,238 p=31436 u=zuul n=ansible | ok: [localhost] => cifmw_install_yamls_defaults: ADOPTED_EXTERNAL_NETWORK: 172.21.1.0/24 ADOPTED_INTERNALAPI_NETWORK: 172.17.1.0/24 ADOPTED_STORAGEMGMT_NETWORK: 172.20.1.0/24 ADOPTED_STORAGE_NETWORK: 172.18.1.0/24 ADOPTED_TENANT_NETWORK: 172.9.1.0/24 ANSIBLEEE: config/samples/_v1beta1_ansibleee.yaml ANSIBLEEE_BRANCH: main ANSIBLEEE_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-ansibleee-operator/config/samples/_v1beta1_ansibleee.yaml ANSIBLEEE_IMG: quay.io/openstack-k8s-operators/openstack-ansibleee-operator-index:latest ANSIBLEEE_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-ansibleee-operator/kuttl-test.yaml ANSIBLEEE_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-ansibleee-operator/test/kuttl/tests ANSIBLEEE_KUTTL_NAMESPACE: ansibleee-kuttl-tests ANSIBLEEE_REPO: https://github.com/openstack-k8s-operators/openstack-ansibleee-operator ANSIBLEE_COMMIT_HASH: '' BARBICAN: config/samples/barbican_v1beta1_barbican.yaml BARBICAN_BRANCH: main BARBICAN_COMMIT_HASH: '' BARBICAN_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator/config/samples/barbican_v1beta1_barbican.yaml BARBICAN_DEPL_IMG: unused BARBICAN_IMG: quay.io/openstack-k8s-operators/barbican-operator-index:latest BARBICAN_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator/kuttl-test.yaml BARBICAN_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator/test/kuttl/tests BARBICAN_KUTTL_NAMESPACE: barbican-kuttl-tests BARBICAN_REPO: https://github.com/openstack-k8s-operators/barbican-operator.git BARBICAN_SERVICE_ENABLED: 'true' BARBICAN_SIMPLE_CRYPTO_ENCRYPTION_KEY: sE**********U= BAREMETAL_BRANCH: main BAREMETAL_COMMIT_HASH: '' BAREMETAL_IMG: quay.io/openstack-k8s-operators/openstack-baremetal-operator-index:latest BAREMETAL_OS_CONTAINER_IMG: '' BAREMETAL_OS_IMG: '' BAREMETAL_REPO: https://github.com/openstack-k8s-operators/openstack-baremetal-operator.git BAREMETAL_TIMEOUT: 20m BASH_IMG: quay.io/openstack-k8s-operators/bash:latest BGP_ASN: '64999' BGP_LEAF_1: 100.65.4.1 BGP_LEAF_2: 100.64.4.1 BGP_OVN_ROUTING: 'false' BGP_PEER_ASN: '64999' BGP_SOURCE_IP: 172.30.4.2 BGP_SOURCE_IP6: f00d:f00d:f00d:f00d:f00d:f00d:f00d:42 BMAAS_BRIDGE_IPV4_PREFIX: 172.20.1.2/24 BMAAS_BRIDGE_IPV6_PREFIX: fd00:bbbb::2/64 BMAAS_INSTANCE_DISK_SIZE: '20' BMAAS_INSTANCE_MEMORY: '4096' BMAAS_INSTANCE_NAME_PREFIX: crc-bmaas BMAAS_INSTANCE_NET_MODEL: virtio BMAAS_INSTANCE_OS_VARIANT: centos-stream9 BMAAS_INSTANCE_VCPUS: '2' BMAAS_INSTANCE_VIRT_TYPE: kvm BMAAS_IPV4: 'true' BMAAS_IPV6: 'false' BMAAS_LIBVIRT_USER: sushyemu BMAAS_METALLB_ADDRESS_POOL: 172.20.1.64/26 BMAAS_METALLB_POOL_NAME: baremetal BMAAS_NETWORK_IPV4_PREFIX: 172.20.1.1/24 BMAAS_NETWORK_IPV6_PREFIX: fd00:bbbb::1/64 BMAAS_NETWORK_NAME: crc-bmaas BMAAS_NODE_COUNT: '1' BMAAS_OCP_INSTANCE_NAME: crc BMAAS_REDFISH_PASSWORD: password BMAAS_REDFISH_USERNAME: admin BMAAS_ROUTE_LIBVIRT_NETWORKS: crc-bmaas,crc,default BMAAS_SUSHY_EMULATOR_DRIVER: libvirt BMAAS_SUSHY_EMULATOR_IMAGE: quay.io/metal3-io/sushy-tools:latest BMAAS_SUSHY_EMULATOR_NAMESPACE: sushy-emulator BMAAS_SUSHY_EMULATOR_OS_CLIENT_CONFIG_FILE: /etc/openstack/clouds.yaml BMAAS_SUSHY_EMULATOR_OS_CLOUD: openstack BMH_NAMESPACE: openstack BMO_BRANCH: release-0.9 BMO_CLEANUP: 'true' BMO_COMMIT_HASH: '' BMO_IPA_BRANCH: stable/2024.1 BMO_IRONIC_HOST: 192.168.122.10 BMO_PROVISIONING_INTERFACE: '' BMO_REPO: https://github.com/metal3-io/baremetal-operator BMO_SETUP: false BMO_SETUP_ROUTE_REPLACE: 'true' BM_CTLPLANE_INTERFACE: enp1s0 BM_INSTANCE_MEMORY: '8192' BM_INSTANCE_NAME_PREFIX: edpm-compute-baremetal BM_INSTANCE_NAME_SUFFIX: '0' BM_NETWORK_NAME: default BM_NODE_COUNT: '1' BM_ROOT_PASSWORD: '' BM_ROOT_PASSWORD_SECRET: '' CEILOMETER_CENTRAL_DEPL_IMG: unused CEILOMETER_NOTIFICATION_DEPL_IMG: unused CEPH_BRANCH: release-1.15 CEPH_CLIENT: /home/zuul/ci-framework-data/artifacts/manifests/operator/rook/deploy/examples/toolbox.yaml CEPH_COMMON: /home/zuul/ci-framework-data/artifacts/manifests/operator/rook/deploy/examples/common.yaml CEPH_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/rook/deploy/examples/cluster-test.yaml CEPH_CRDS: /home/zuul/ci-framework-data/artifacts/manifests/operator/rook/deploy/examples/crds.yaml CEPH_IMG: quay.io/ceph/demo:latest-squid CEPH_OP: /home/zuul/ci-framework-data/artifacts/manifests/operator/rook/deploy/examples/operator-openshift.yaml CEPH_REPO: https://github.com/rook/rook.git CERTMANAGER_TIMEOUT: 300s CHECKOUT_FROM_OPENSTACK_REF: 'true' CINDER: config/samples/cinder_v1beta1_cinder.yaml CINDERAPI_DEPL_IMG: unused CINDERBKP_DEPL_IMG: unused CINDERSCH_DEPL_IMG: unused CINDERVOL_DEPL_IMG: unused CINDER_BRANCH: main CINDER_COMMIT_HASH: '' CINDER_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator/config/samples/cinder_v1beta1_cinder.yaml CINDER_IMG: quay.io/openstack-k8s-operators/cinder-operator-index:latest CINDER_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator/kuttl-test.yaml CINDER_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator/test/kuttl/tests CINDER_KUTTL_NAMESPACE: cinder-kuttl-tests CINDER_REPO: https://github.com/openstack-k8s-operators/cinder-operator.git CLEANUP_DIR_CMD: rm -Rf CRC_BGP_NIC_1_MAC: '52:54:00:11:11:11' CRC_BGP_NIC_2_MAC: '52:54:00:11:11:12' CRC_HTTPS_PROXY: '' CRC_HTTP_PROXY: '' CRC_STORAGE_NAMESPACE: crc-storage CRC_STORAGE_RETRIES: '3' CRC_URL: '''https://developers.redhat.com/content-gateway/rest/mirror/pub/openshift-v4/clients/crc/latest/crc-linux-amd64.tar.xz''' CRC_VERSION: latest DATAPLANE_ANSIBLE_SECRET: dataplane-ansible-ssh-private-key-secret DATAPLANE_ANSIBLE_USER: '' DATAPLANE_COMPUTE_IP: 192.168.122.100 DATAPLANE_CONTAINER_PREFIX: openstack DATAPLANE_CONTAINER_TAG: current-podified DATAPLANE_CUSTOM_SERVICE_RUNNER_IMG: quay.io/openstack-k8s-operators/openstack-ansibleee-runner:latest DATAPLANE_DEFAULT_GW: 192.168.122.1 DATAPLANE_EXTRA_NOVA_CONFIG_FILE: /dev/null DATAPLANE_GROWVOLS_ARGS: /=8GB /tmp=1GB /home=1GB /var=100% DATAPLANE_KUSTOMIZE_SCENARIO: preprovisioned DATAPLANE_NETWORKER_IP: 192.168.122.200 DATAPLANE_NETWORK_INTERFACE_NAME: eth0 DATAPLANE_NOVA_NFS_PATH: '' DATAPLANE_NTP_SERVER: pool.ntp.org DATAPLANE_PLAYBOOK: osp.edpm.download_cache DATAPLANE_REGISTRY_URL: quay.io/podified-antelope-centos9 DATAPLANE_RUNNER_IMG: '' DATAPLANE_SERVER_ROLE: compute DATAPLANE_SSHD_ALLOWED_RANGES: '[''192.168.122.0/24'']' DATAPLANE_TIMEOUT: 30m DATAPLANE_TLS_ENABLED: 'true' DATAPLANE_TOTAL_NETWORKER_NODES: '1' DATAPLANE_TOTAL_NODES: '1' DBSERVICE: galera DESIGNATE: config/samples/designate_v1beta1_designate.yaml DESIGNATE_BRANCH: main DESIGNATE_COMMIT_HASH: '' DESIGNATE_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator/config/samples/designate_v1beta1_designate.yaml DESIGNATE_IMG: quay.io/openstack-k8s-operators/designate-operator-index:latest DESIGNATE_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator/kuttl-test.yaml DESIGNATE_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator/test/kuttl/tests DESIGNATE_KUTTL_NAMESPACE: designate-kuttl-tests DESIGNATE_REPO: https://github.com/openstack-k8s-operators/designate-operator.git DNSDATA: config/samples/network_v1beta1_dnsdata.yaml DNSDATA_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/config/samples/network_v1beta1_dnsdata.yaml DNSMASQ: config/samples/network_v1beta1_dnsmasq.yaml DNSMASQ_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/config/samples/network_v1beta1_dnsmasq.yaml DNS_DEPL_IMG: unused DNS_DOMAIN: localdomain DOWNLOAD_TOOLS_SELECTION: all EDPM_ATTACH_EXTNET: 'true' EDPM_COMPUTE_ADDITIONAL_HOST_ROUTES: '''[]''' EDPM_COMPUTE_ADDITIONAL_NETWORKS: '''[]''' EDPM_COMPUTE_CELLS: '1' EDPM_COMPUTE_CEPH_ENABLED: 'true' EDPM_COMPUTE_CEPH_NOVA: 'true' EDPM_COMPUTE_DHCP_AGENT_ENABLED: 'true' EDPM_COMPUTE_SRIOV_ENABLED: 'true' EDPM_COMPUTE_SUFFIX: '0' EDPM_CONFIGURE_DEFAULT_ROUTE: 'true' EDPM_CONFIGURE_HUGEPAGES: 'false' EDPM_CONFIGURE_NETWORKING: 'true' EDPM_FIRSTBOOT_EXTRA: /tmp/edpm-firstboot-extra EDPM_NETWORKER_SUFFIX: '0' EDPM_TOTAL_NETWORKERS: '1' EDPM_TOTAL_NODES: '1' GALERA_REPLICAS: '' GENERATE_SSH_KEYS: 'true' GIT_CLONE_OPTS: '' GLANCE: config/samples/glance_v1beta1_glance.yaml GLANCEAPI_DEPL_IMG: unused GLANCE_BRANCH: main GLANCE_COMMIT_HASH: '' GLANCE_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator/config/samples/glance_v1beta1_glance.yaml GLANCE_IMG: quay.io/openstack-k8s-operators/glance-operator-index:latest GLANCE_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator/kuttl-test.yaml GLANCE_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator/test/kuttl/tests GLANCE_KUTTL_NAMESPACE: glance-kuttl-tests GLANCE_REPO: https://github.com/openstack-k8s-operators/glance-operator.git HEAT: config/samples/heat_v1beta1_heat.yaml HEATAPI_DEPL_IMG: unused HEATCFNAPI_DEPL_IMG: unused HEATENGINE_DEPL_IMG: unused HEAT_AUTH_ENCRYPTION_KEY: 76**********f0 HEAT_BRANCH: main HEAT_COMMIT_HASH: '' HEAT_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator/config/samples/heat_v1beta1_heat.yaml HEAT_IMG: quay.io/openstack-k8s-operators/heat-operator-index:latest HEAT_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator/kuttl-test.yaml HEAT_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator/test/kuttl/tests HEAT_KUTTL_NAMESPACE: heat-kuttl-tests HEAT_REPO: https://github.com/openstack-k8s-operators/heat-operator.git HEAT_SERVICE_ENABLED: 'true' HORIZON: config/samples/horizon_v1beta1_horizon.yaml HORIZON_BRANCH: main HORIZON_COMMIT_HASH: '' HORIZON_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator/config/samples/horizon_v1beta1_horizon.yaml HORIZON_DEPL_IMG: unused HORIZON_IMG: quay.io/openstack-k8s-operators/horizon-operator-index:latest HORIZON_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator/kuttl-test.yaml HORIZON_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator/test/kuttl/tests HORIZON_KUTTL_NAMESPACE: horizon-kuttl-tests HORIZON_REPO: https://github.com/openstack-k8s-operators/horizon-operator.git INFRA_BRANCH: main INFRA_COMMIT_HASH: '' INFRA_IMG: quay.io/openstack-k8s-operators/infra-operator-index:latest INFRA_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/kuttl-test.yaml INFRA_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/test/kuttl/tests INFRA_KUTTL_NAMESPACE: infra-kuttl-tests INFRA_REPO: https://github.com/openstack-k8s-operators/infra-operator.git INSTALL_CERT_MANAGER: 'true' INSTALL_NMSTATE: true || false INSTALL_NNCP: true || false INTERNALAPI_HOST_ROUTES: '' IPV6_LAB_IPV4_NETWORK_IPADDRESS: 172.30.0.1/24 IPV6_LAB_IPV6_NETWORK_IPADDRESS: fd00:abcd:abcd:fc00::1/64 IPV6_LAB_LIBVIRT_STORAGE_POOL: default IPV6_LAB_MANAGE_FIREWALLD: 'true' IPV6_LAB_NAT64_HOST_IPV4: 172.30.0.2/24 IPV6_LAB_NAT64_HOST_IPV6: fd00:abcd:abcd:fc00::2/64 IPV6_LAB_NAT64_INSTANCE_NAME: nat64-router IPV6_LAB_NAT64_IPV6_NETWORK: fd00:abcd:abcd:fc00::/64 IPV6_LAB_NAT64_TAYGA_DYNAMIC_POOL: 192.168.255.0/24 IPV6_LAB_NAT64_TAYGA_IPV4: 192.168.255.1 IPV6_LAB_NAT64_TAYGA_IPV6: fd00:abcd:abcd:fc00::3 IPV6_LAB_NAT64_TAYGA_IPV6_PREFIX: fd00:abcd:abcd:fcff::/96 IPV6_LAB_NAT64_UPDATE_PACKAGES: 'false' IPV6_LAB_NETWORK_NAME: nat64 IPV6_LAB_SNO_CLUSTER_NETWORK: fd00:abcd:0::/48 IPV6_LAB_SNO_HOST_IP: fd00:abcd:abcd:fc00::11 IPV6_LAB_SNO_HOST_PREFIX: '64' IPV6_LAB_SNO_INSTANCE_NAME: sno IPV6_LAB_SNO_MACHINE_NETWORK: fd00:abcd:abcd:fc00::/64 IPV6_LAB_SNO_OCP_MIRROR_URL: https://mirror.openshift.com/pub/openshift-v4/clients/ocp IPV6_LAB_SNO_OCP_VERSION: latest-4.14 IPV6_LAB_SNO_SERVICE_NETWORK: fd00:abcd:abcd:fc03::/112 IPV6_LAB_SSH_PUB_KEY: /home/zuul/.ssh/id_rsa.pub IPV6_LAB_WORK_DIR: /home/zuul/.ipv6lab IRONIC: config/samples/ironic_v1beta1_ironic.yaml IRONICAPI_DEPL_IMG: unused IRONICCON_DEPL_IMG: unused IRONICINS_DEPL_IMG: unused IRONICNAG_DEPL_IMG: unused IRONICPXE_DEPL_IMG: unused IRONIC_BRANCH: main IRONIC_COMMIT_HASH: '' IRONIC_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator/config/samples/ironic_v1beta1_ironic.yaml IRONIC_IMAGE_TAG: release-24.1 IRONIC_IMG: quay.io/openstack-k8s-operators/ironic-operator-index:latest IRONIC_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator/kuttl-test.yaml IRONIC_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator/test/kuttl/tests IRONIC_KUTTL_NAMESPACE: ironic-kuttl-tests IRONIC_REPO: https://github.com/openstack-k8s-operators/ironic-operator.git KEYSTONEAPI: config/samples/keystone_v1beta1_keystoneapi.yaml KEYSTONEAPI_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/config/samples/keystone_v1beta1_keystoneapi.yaml KEYSTONEAPI_DEPL_IMG: unused KEYSTONE_BRANCH: '' KEYSTONE_COMMIT_HASH: '' KEYSTONE_FEDERATION_CLIENT_SECRET: CO**********6f KEYSTONE_FEDERATION_CRYPTO_PASSPHRASE: openstack KEYSTONE_IMG: quay.io/openstack-k8s-operators/keystone-operator-index:latest KEYSTONE_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/kuttl-test.yaml KEYSTONE_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/test/kuttl/tests KEYSTONE_KUTTL_NAMESPACE: keystone-kuttl-tests KEYSTONE_REPO: /home/zuul/src/github.com/openstack-k8s-operators/keystone-operator KUBEADMIN_PWD: '12345678' LIBVIRT_SECRET: libvirt-secret LOKI_DEPLOY_MODE: openshift-network LOKI_DEPLOY_NAMESPACE: netobserv LOKI_DEPLOY_SIZE: 1x.demo LOKI_NAMESPACE: openshift-operators-redhat LOKI_OPERATOR_GROUP: openshift-operators-redhat-loki LOKI_SUBSCRIPTION: loki-operator LVMS_CR: '1' MANILA: config/samples/manila_v1beta1_manila.yaml MANILAAPI_DEPL_IMG: unused MANILASCH_DEPL_IMG: unused MANILASHARE_DEPL_IMG: unused MANILA_BRANCH: main MANILA_COMMIT_HASH: '' MANILA_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator/config/samples/manila_v1beta1_manila.yaml MANILA_IMG: quay.io/openstack-k8s-operators/manila-operator-index:latest MANILA_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator/kuttl-test.yaml MANILA_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator/test/kuttl/tests MANILA_KUTTL_NAMESPACE: manila-kuttl-tests MANILA_REPO: https://github.com/openstack-k8s-operators/manila-operator.git MANILA_SERVICE_ENABLED: 'true' MARIADB: config/samples/mariadb_v1beta1_galera.yaml MARIADB_BRANCH: main MARIADB_CHAINSAW_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/test/chainsaw/config.yaml MARIADB_CHAINSAW_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/test/chainsaw/tests MARIADB_CHAINSAW_NAMESPACE: mariadb-chainsaw-tests MARIADB_COMMIT_HASH: '' MARIADB_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/config/samples/mariadb_v1beta1_galera.yaml MARIADB_DEPL_IMG: unused MARIADB_IMG: quay.io/openstack-k8s-operators/mariadb-operator-index:latest MARIADB_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/kuttl-test.yaml MARIADB_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator/test/kuttl/tests MARIADB_KUTTL_NAMESPACE: mariadb-kuttl-tests MARIADB_REPO: https://github.com/openstack-k8s-operators/mariadb-operator.git MEMCACHED: config/samples/memcached_v1beta1_memcached.yaml MEMCACHED_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/config/samples/memcached_v1beta1_memcached.yaml MEMCACHED_DEPL_IMG: unused METADATA_SHARED_SECRET: '12**********42' METALLB_IPV6_POOL: fd00:aaaa::80-fd00:aaaa::90 METALLB_POOL: 192.168.122.80-192.168.122.90 MICROSHIFT: '0' NAMESPACE: openstack NETCONFIG: config/samples/network_v1beta1_netconfig.yaml NETCONFIG_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator/config/samples/network_v1beta1_netconfig.yaml NETCONFIG_DEPL_IMG: unused NETOBSERV_DEPLOY_NAMESPACE: netobserv NETOBSERV_NAMESPACE: openshift-netobserv-operator NETOBSERV_OPERATOR_GROUP: openshift-netobserv-operator-net NETOBSERV_SUBSCRIPTION: netobserv-operator NETWORK_BGP: 'false' NETWORK_DESIGNATE_ADDRESS_PREFIX: 172.28.0 NETWORK_DESIGNATE_EXT_ADDRESS_PREFIX: 172.50.0 NETWORK_INTERNALAPI_ADDRESS_PREFIX: 172.17.0 NETWORK_ISOLATION: 'true' NETWORK_ISOLATION_INSTANCE_NAME: crc NETWORK_ISOLATION_IPV4: 'true' NETWORK_ISOLATION_IPV4_ADDRESS: 172.16.1.1/24 NETWORK_ISOLATION_IPV4_NAT: 'true' NETWORK_ISOLATION_IPV6: 'false' NETWORK_ISOLATION_IPV6_ADDRESS: fd00:aaaa::1/64 NETWORK_ISOLATION_IP_ADDRESS: 192.168.122.10 NETWORK_ISOLATION_MAC: '52:54:00:11:11:10' NETWORK_ISOLATION_NETWORK_NAME: net-iso NETWORK_ISOLATION_NET_NAME: default NETWORK_ISOLATION_USE_DEFAULT_NETWORK: 'true' NETWORK_MTU: '1500' NETWORK_STORAGEMGMT_ADDRESS_PREFIX: 172.20.0 NETWORK_STORAGE_ADDRESS_PREFIX: 172.18.0 NETWORK_STORAGE_MACVLAN: '' NETWORK_TENANT_ADDRESS_PREFIX: 172.19.0 NETWORK_VLAN_START: '20' NETWORK_VLAN_STEP: '1' NEUTRONAPI: config/samples/neutron_v1beta1_neutronapi.yaml NEUTRONAPI_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator/config/samples/neutron_v1beta1_neutronapi.yaml NEUTRONAPI_DEPL_IMG: unused NEUTRON_BRANCH: main NEUTRON_COMMIT_HASH: '' NEUTRON_IMG: quay.io/openstack-k8s-operators/neutron-operator-index:latest NEUTRON_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator/kuttl-test.yaml NEUTRON_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator/test/kuttl/tests NEUTRON_KUTTL_NAMESPACE: neutron-kuttl-tests NEUTRON_REPO: https://github.com/openstack-k8s-operators/neutron-operator.git NFS_HOME: /home/nfs NMSTATE_NAMESPACE: openshift-nmstate NMSTATE_OPERATOR_GROUP: openshift-nmstate-tn6k8 NMSTATE_SUBSCRIPTION: kubernetes-nmstate-operator NNCP_ADDITIONAL_HOST_ROUTES: '' NNCP_BGP_1_INTERFACE: enp7s0 NNCP_BGP_1_IP_ADDRESS: 100.65.4.2 NNCP_BGP_2_INTERFACE: enp8s0 NNCP_BGP_2_IP_ADDRESS: 100.64.4.2 NNCP_BRIDGE: ospbr NNCP_CLEANUP_TIMEOUT: 120s NNCP_CTLPLANE_IPV6_ADDRESS_PREFIX: 'fd00:aaaa::' NNCP_CTLPLANE_IPV6_ADDRESS_SUFFIX: '10' NNCP_CTLPLANE_IP_ADDRESS_PREFIX: 192.168.122 NNCP_CTLPLANE_IP_ADDRESS_SUFFIX: '10' NNCP_DNS_SERVER: 192.168.122.1 NNCP_DNS_SERVER_IPV6: fd00:aaaa::1 NNCP_GATEWAY: 192.168.122.1 NNCP_GATEWAY_IPV6: fd00:aaaa::1 NNCP_INTERFACE: enp6s0 NNCP_NODES: '' NNCP_TIMEOUT: 240s NOVA: config/samples/nova_v1beta1_nova_collapsed_cell.yaml NOVA_BRANCH: main NOVA_COMMIT_HASH: '' NOVA_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/nova-operator/config/samples/nova_v1beta1_nova_collapsed_cell.yaml NOVA_IMG: quay.io/openstack-k8s-operators/nova-operator-index:latest NOVA_REPO: https://github.com/openstack-k8s-operators/nova-operator.git NUMBER_OF_INSTANCES: '1' OCP_NETWORK_NAME: crc OCTAVIA: config/samples/octavia_v1beta1_octavia.yaml OCTAVIA_BRANCH: main OCTAVIA_COMMIT_HASH: '' OCTAVIA_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator/config/samples/octavia_v1beta1_octavia.yaml OCTAVIA_IMG: quay.io/openstack-k8s-operators/octavia-operator-index:latest OCTAVIA_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator/kuttl-test.yaml OCTAVIA_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator/test/kuttl/tests OCTAVIA_KUTTL_NAMESPACE: octavia-kuttl-tests OCTAVIA_REPO: https://github.com/openstack-k8s-operators/octavia-operator.git OKD: 'false' OPENSTACK_BRANCH: main OPENSTACK_BUNDLE_IMG: quay.io/openstack-k8s-operators/openstack-operator-bundle:latest OPENSTACK_COMMIT_HASH: '' OPENSTACK_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-operator/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml OPENSTACK_CRDS_DIR: openstack_crds OPENSTACK_CTLPLANE: config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml OPENSTACK_IMG: quay.io/openstack-k8s-operators/openstack-operator-index:latest OPENSTACK_K8S_BRANCH: main OPENSTACK_K8S_TAG: latest OPENSTACK_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-operator/kuttl-test.yaml OPENSTACK_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/openstack-operator/test/kuttl/tests OPENSTACK_KUTTL_NAMESPACE: openstack-kuttl-tests OPENSTACK_NEUTRON_CUSTOM_CONF: '' OPENSTACK_REPO: https://github.com/openstack-k8s-operators/openstack-operator.git OPENSTACK_STORAGE_BUNDLE_IMG: quay.io/openstack-k8s-operators/openstack-operator-storage-bundle:latest OPERATOR_BASE_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator OPERATOR_CHANNEL: '' OPERATOR_NAMESPACE: openstack-operators OPERATOR_SOURCE: '' OPERATOR_SOURCE_NAMESPACE: '' OUT: /home/zuul/ci-framework-data/artifacts/manifests OUTPUT_DIR: /home/zuul/ci-framework-data/artifacts/edpm OVNCONTROLLER: config/samples/ovn_v1beta1_ovncontroller.yaml OVNCONTROLLER_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator/config/samples/ovn_v1beta1_ovncontroller.yaml OVNCONTROLLER_NMAP: 'true' OVNDBS: config/samples/ovn_v1beta1_ovndbcluster.yaml OVNDBS_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator/config/samples/ovn_v1beta1_ovndbcluster.yaml OVNNORTHD: config/samples/ovn_v1beta1_ovnnorthd.yaml OVNNORTHD_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator/config/samples/ovn_v1beta1_ovnnorthd.yaml OVN_BRANCH: main OVN_COMMIT_HASH: '' OVN_IMG: quay.io/openstack-k8s-operators/ovn-operator-index:latest OVN_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator/kuttl-test.yaml OVN_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator/test/kuttl/tests OVN_KUTTL_NAMESPACE: ovn-kuttl-tests OVN_REPO: https://github.com/openstack-k8s-operators/ovn-operator.git PASSWORD: '12**********78' PLACEMENTAPI: config/samples/placement_v1beta1_placementapi.yaml PLACEMENTAPI_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator/config/samples/placement_v1beta1_placementapi.yaml PLACEMENTAPI_DEPL_IMG: unused PLACEMENT_BRANCH: main PLACEMENT_COMMIT_HASH: '' PLACEMENT_IMG: quay.io/openstack-k8s-operators/placement-operator-index:latest PLACEMENT_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator/kuttl-test.yaml PLACEMENT_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator/test/kuttl/tests PLACEMENT_KUTTL_NAMESPACE: placement-kuttl-tests PLACEMENT_REPO: https://github.com/openstack-k8s-operators/placement-operator.git PULL_SECRET: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/kuttl/pull-secret.txt RABBITMQ: docs/examples/default-security-context/rabbitmq.yaml RABBITMQ_BRANCH: patches RABBITMQ_COMMIT_HASH: '' RABBITMQ_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator/docs/examples/default-security-context/rabbitmq.yaml RABBITMQ_DEPL_IMG: unused RABBITMQ_IMG: quay.io/openstack-k8s-operators/rabbitmq-cluster-operator-index:latest RABBITMQ_REPO: https://github.com/openstack-k8s-operators/rabbitmq-cluster-operator.git REDHAT_OPERATORS: 'false' REDIS: config/samples/redis_v1beta1_redis.yaml REDIS_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator-redis/config/samples/redis_v1beta1_redis.yaml REDIS_DEPL_IMG: unused RH_REGISTRY_PWD: '' RH_REGISTRY_USER: '' SECRET: os**********et SG_CORE_DEPL_IMG: unused STANDALONE_COMPUTE_DRIVER: libvirt STANDALONE_EXTERNAL_NET_PREFFIX: 172.21.0 STANDALONE_INTERNALAPI_NET_PREFIX: 172.17.0 STANDALONE_STORAGEMGMT_NET_PREFIX: 172.20.0 STANDALONE_STORAGE_NET_PREFIX: 172.18.0 STANDALONE_TENANT_NET_PREFIX: 172.19.0 STORAGEMGMT_HOST_ROUTES: '' STORAGE_CLASS: local-storage STORAGE_HOST_ROUTES: '' SWIFT: config/samples/swift_v1beta1_swift.yaml SWIFT_BRANCH: main SWIFT_COMMIT_HASH: '' SWIFT_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator/config/samples/swift_v1beta1_swift.yaml SWIFT_IMG: quay.io/openstack-k8s-operators/swift-operator-index:latest SWIFT_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator/kuttl-test.yaml SWIFT_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator/test/kuttl/tests SWIFT_KUTTL_NAMESPACE: swift-kuttl-tests SWIFT_REPO: https://github.com/openstack-k8s-operators/swift-operator.git TELEMETRY: config/samples/telemetry_v1beta1_telemetry.yaml TELEMETRY_BRANCH: main TELEMETRY_COMMIT_HASH: '' TELEMETRY_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator/config/samples/telemetry_v1beta1_telemetry.yaml TELEMETRY_IMG: quay.io/openstack-k8s-operators/telemetry-operator-index:latest TELEMETRY_KUTTL_BASEDIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator TELEMETRY_KUTTL_CONF: /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator/kuttl-test.yaml TELEMETRY_KUTTL_DIR: /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator/test/kuttl/suites TELEMETRY_KUTTL_NAMESPACE: telemetry-kuttl-tests TELEMETRY_KUTTL_RELPATH: test/kuttl/suites TELEMETRY_REPO: https://github.com/openstack-k8s-operators/telemetry-operator.git TENANT_HOST_ROUTES: '' TIMEOUT: 300s TLS_ENABLED: 'false' tripleo_deploy: 'export REGISTRY_PWD:' 2025-11-25 08:41:05,246 p=31436 u=zuul n=ansible | TASK [install_yamls : Generate make targets install_yamls_path={{ cifmw_install_yamls_repo }}, output_directory={{ cifmw_install_yamls_tasks_out }}] *** 2025-11-25 08:41:05,246 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.033) 0:01:00.043 ****** 2025-11-25 08:41:05,246 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.033) 0:01:00.041 ****** 2025-11-25 08:41:05,568 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:05,576 p=31436 u=zuul n=ansible | TASK [install_yamls : Debug generate_make module var=cifmw_generate_makes] ***** 2025-11-25 08:41:05,576 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.329) 0:01:00.373 ****** 2025-11-25 08:41:05,576 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.330) 0:01:00.371 ****** 2025-11-25 08:41:05,596 p=31436 u=zuul n=ansible | ok: [localhost] => cifmw_generate_makes: changed: false debug: /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/Makefile: - all - help - cleanup - deploy_cleanup - wait - crc_storage - crc_storage_cleanup - crc_storage_release - crc_storage_with_retries - crc_storage_cleanup_with_retries - operator_namespace - namespace - namespace_cleanup - input - input_cleanup - crc_bmo_setup - crc_bmo_cleanup - openstack_prep - openstack - openstack_wait - openstack_init - openstack_cleanup - openstack_repo - openstack_deploy_prep - openstack_deploy - openstack_wait_deploy - openstack_deploy_cleanup - openstack_update_run - update_services - update_system - openstack_patch_version - edpm_deploy_generate_keys - edpm_patch_ansible_runner_image - edpm_deploy_prep - edpm_deploy_cleanup - edpm_deploy - edpm_deploy_baremetal_prep - edpm_deploy_baremetal - edpm_wait_deploy_baremetal - edpm_wait_deploy - edpm_register_dns - edpm_nova_discover_hosts - openstack_crds - openstack_crds_cleanup - edpm_deploy_networker_prep - edpm_deploy_networker_cleanup - edpm_deploy_networker - infra_prep - infra - infra_cleanup - dns_deploy_prep - dns_deploy - dns_deploy_cleanup - netconfig_deploy_prep - netconfig_deploy - netconfig_deploy_cleanup - memcached_deploy_prep - memcached_deploy - memcached_deploy_cleanup - keystone_prep - keystone - keystone_cleanup - keystone_deploy_prep - keystone_deploy - keystone_deploy_cleanup - barbican_prep - barbican - barbican_cleanup - barbican_deploy_prep - barbican_deploy - barbican_deploy_validate - barbican_deploy_cleanup - mariadb - mariadb_cleanup - mariadb_deploy_prep - mariadb_deploy - mariadb_deploy_cleanup - placement_prep - placement - placement_cleanup - placement_deploy_prep - placement_deploy - placement_deploy_cleanup - glance_prep - glance - glance_cleanup - glance_deploy_prep - glance_deploy - glance_deploy_cleanup - ovn_prep - ovn - ovn_cleanup - ovn_deploy_prep - ovn_deploy - ovn_deploy_cleanup - neutron_prep - neutron - neutron_cleanup - neutron_deploy_prep - neutron_deploy - neutron_deploy_cleanup - cinder_prep - cinder - cinder_cleanup - cinder_deploy_prep - cinder_deploy - cinder_deploy_cleanup - rabbitmq_prep - rabbitmq - rabbitmq_cleanup - rabbitmq_deploy_prep - rabbitmq_deploy - rabbitmq_deploy_cleanup - ironic_prep - ironic - ironic_cleanup - ironic_deploy_prep - ironic_deploy - ironic_deploy_cleanup - octavia_prep - octavia - octavia_cleanup - octavia_deploy_prep - octavia_deploy - octavia_deploy_cleanup - designate_prep - designate - designate_cleanup - designate_deploy_prep - designate_deploy - designate_deploy_cleanup - nova_prep - nova - nova_cleanup - nova_deploy_prep - nova_deploy - nova_deploy_cleanup - mariadb_kuttl_run - mariadb_kuttl - kuttl_db_prep - kuttl_db_cleanup - kuttl_common_prep - kuttl_common_cleanup - keystone_kuttl_run - keystone_kuttl - barbican_kuttl_run - barbican_kuttl - placement_kuttl_run - placement_kuttl - cinder_kuttl_run - cinder_kuttl - neutron_kuttl_run - neutron_kuttl - octavia_kuttl_run - octavia_kuttl - designate_kuttl - designate_kuttl_run - ovn_kuttl_run - ovn_kuttl - infra_kuttl_run - infra_kuttl - ironic_kuttl_run - ironic_kuttl - ironic_kuttl_crc - heat_kuttl_run - heat_kuttl - heat_kuttl_crc - ansibleee_kuttl_run - ansibleee_kuttl_cleanup - ansibleee_kuttl_prep - ansibleee_kuttl - glance_kuttl_run - glance_kuttl - manila_kuttl_run - manila_kuttl - swift_kuttl_run - swift_kuttl - horizon_kuttl_run - horizon_kuttl - openstack_kuttl_run - openstack_kuttl - mariadb_chainsaw_run - mariadb_chainsaw - horizon_prep - horizon - horizon_cleanup - horizon_deploy_prep - horizon_deploy - horizon_deploy_cleanup - heat_prep - heat - heat_cleanup - heat_deploy_prep - heat_deploy - heat_deploy_cleanup - ansibleee_prep - ansibleee - ansibleee_cleanup - baremetal_prep - baremetal - baremetal_cleanup - ceph_help - ceph - ceph_cleanup - rook_prep - rook - rook_deploy_prep - rook_deploy - rook_crc_disk - rook_cleanup - lvms - nmstate - nncp - nncp_cleanup - netattach - netattach_cleanup - metallb - metallb_config - metallb_config_cleanup - metallb_cleanup - loki - loki_cleanup - loki_deploy - loki_deploy_cleanup - netobserv - netobserv_cleanup - netobserv_deploy - netobserv_deploy_cleanup - manila_prep - manila - manila_cleanup - manila_deploy_prep - manila_deploy - manila_deploy_cleanup - telemetry_prep - telemetry - telemetry_cleanup - telemetry_deploy_prep - telemetry_deploy - telemetry_deploy_cleanup - telemetry_kuttl_run - telemetry_kuttl - swift_prep - swift - swift_cleanup - swift_deploy_prep - swift_deploy - swift_deploy_cleanup - certmanager - certmanager_cleanup - validate_marketplace - redis_deploy_prep - redis_deploy - redis_deploy_cleanup - set_slower_etcd_profile /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/devsetup/Makefile: - help - download_tools - nfs - nfs_cleanup - crc - crc_cleanup - crc_scrub - crc_attach_default_interface - crc_attach_default_interface_cleanup - ipv6_lab_network - ipv6_lab_network_cleanup - ipv6_lab_nat64_router - ipv6_lab_nat64_router_cleanup - ipv6_lab_sno - ipv6_lab_sno_cleanup - ipv6_lab - ipv6_lab_cleanup - attach_default_interface - attach_default_interface_cleanup - network_isolation_bridge - network_isolation_bridge_cleanup - edpm_baremetal_compute - edpm_compute - edpm_compute_bootc - edpm_ansible_runner - edpm_computes_bgp - edpm_compute_repos - edpm_compute_cleanup - edpm_networker - edpm_networker_cleanup - edpm_deploy_instance - tripleo_deploy - standalone_deploy - standalone_sync - standalone - standalone_cleanup - standalone_snapshot - standalone_revert - cifmw_prepare - cifmw_cleanup - bmaas_network - bmaas_network_cleanup - bmaas_route_crc_and_crc_bmaas_networks - bmaas_route_crc_and_crc_bmaas_networks_cleanup - bmaas_crc_attach_network - bmaas_crc_attach_network_cleanup - bmaas_crc_baremetal_bridge - bmaas_crc_baremetal_bridge_cleanup - bmaas_baremetal_net_nad - bmaas_baremetal_net_nad_cleanup - bmaas_metallb - bmaas_metallb_cleanup - bmaas_virtual_bms - bmaas_virtual_bms_cleanup - bmaas_sushy_emulator - bmaas_sushy_emulator_cleanup - bmaas_sushy_emulator_wait - bmaas_generate_nodes_yaml - bmaas - bmaas_cleanup failed: false success: true 2025-11-25 08:41:05,604 p=31436 u=zuul n=ansible | TASK [install_yamls : Create the install_yamls parameters file dest={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts/parameters/install-yamls-params.yml, content={{ { 'cifmw_install_yamls_environment': cifmw_install_yamls_environment, 'cifmw_install_yamls_defaults': cifmw_install_yamls_defaults } | to_nice_yaml }}, mode=0644] *** 2025-11-25 08:41:05,605 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.028) 0:01:00.401 ****** 2025-11-25 08:41:05,605 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:05 +0000 (0:00:00.028) 0:01:00.399 ****** 2025-11-25 08:41:05,992 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:06,000 p=31436 u=zuul n=ansible | TASK [install_yamls : Create empty cifmw_install_yamls_environment if needed cifmw_install_yamls_environment={}] *** 2025-11-25 08:41:06,000 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.395) 0:01:00.796 ****** 2025-11-25 08:41:06,000 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.395) 0:01:00.795 ****** 2025-11-25 08:41:06,016 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:06,030 p=31436 u=zuul n=ansible | TASK [discover_latest_image : Get latest image url={{ cifmw_discover_latest_image_base_url }}, image_prefix={{ cifmw_discover_latest_image_qcow_prefix }}, images_file={{ cifmw_discover_latest_image_images_file }}] *** 2025-11-25 08:41:06,030 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.030) 0:01:00.827 ****** 2025-11-25 08:41:06,031 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.030) 0:01:00.825 ****** 2025-11-25 08:41:06,389 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:06,400 p=31436 u=zuul n=ansible | TASK [discover_latest_image : Export facts accordingly cifmw_discovered_image_name={{ discovered_image['data']['image_name'] }}, cifmw_discovered_image_url={{ discovered_image['data']['image_url'] }}, cifmw_discovered_hash={{ discovered_image['data']['hash'] }}, cifmw_discovered_hash_algorithm={{ discovered_image['data']['hash_algorithm'] }}, cacheable=True] *** 2025-11-25 08:41:06,400 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.369) 0:01:01.197 ****** 2025-11-25 08:41:06,400 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.369) 0:01:01.195 ****** 2025-11-25 08:41:06,423 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:06,442 p=31436 u=zuul n=ansible | TASK [cifmw_setup : Create artifacts with custom params mode=0644, dest={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts/parameters/custom-params.yml, content={{ ci_framework_params | to_nice_yaml }}] *** 2025-11-25 08:41:06,442 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.042) 0:01:01.239 ****** 2025-11-25 08:41:06,442 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.042) 0:01:01.237 ****** 2025-11-25 08:41:06,812 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:06,846 p=31436 u=zuul n=ansible | PLAY [Install deps and prepare for KUTTL run] ********************************** 2025-11-25 08:41:06,867 p=31436 u=zuul n=ansible | TASK [Download install_yamls deps name=install_yamls_makes, tasks_from=make_download_tools] *** 2025-11-25 08:41:06,867 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.424) 0:01:01.664 ****** 2025-11-25 08:41:06,867 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.424) 0:01:01.662 ****** 2025-11-25 08:41:06,920 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_download_tools_env var=make_download_tools_env] *** 2025-11-25 08:41:06,920 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.052) 0:01:01.716 ****** 2025-11-25 08:41:06,920 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.052) 0:01:01.715 ****** 2025-11-25 08:41:06,938 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:06,947 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_download_tools_params var=make_download_tools_params] *** 2025-11-25 08:41:06,947 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.027) 0:01:01.744 ****** 2025-11-25 08:41:06,947 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.027) 0:01:01.742 ****** 2025-11-25 08:41:06,966 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:06,978 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Run download_tools output_dir={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts, chdir=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/devsetup, script=make download_tools, dry_run={{ make_download_tools_dryrun|default(false)|bool }}, extra_args={{ dict((make_download_tools_env|default({})), **(make_download_tools_params|default({}))) }}] *** 2025-11-25 08:41:06,978 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.031) 0:01:01.775 ****** 2025-11-25 08:41:06,978 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:06 +0000 (0:00:00.031) 0:01:01.773 ****** 2025-11-25 08:41:07,017 p=31436 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_000_run_download.log 2025-11-25 08:41:41,974 p=31436 u=zuul n=ansible | [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ make_download_tools_until | default(true) }} 2025-11-25 08:41:41,975 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:41,988 p=31436 u=zuul n=ansible | TASK [Login into Openshift cluster name=openshift_login] *********************** 2025-11-25 08:41:41,988 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:41 +0000 (0:00:35.009) 0:01:36.785 ****** 2025-11-25 08:41:41,988 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:41 +0000 (0:00:35.009) 0:01:36.783 ****** 2025-11-25 08:41:42,044 p=31436 u=zuul n=ansible | TASK [openshift_login : Ensure output directory exists path={{ cifmw_openshift_login_basedir }}/artifacts, state=directory, mode=0755] *** 2025-11-25 08:41:42,044 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.056) 0:01:36.841 ****** 2025-11-25 08:41:42,045 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.056) 0:01:36.839 ****** 2025-11-25 08:41:42,261 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:42,269 p=31436 u=zuul n=ansible | TASK [openshift_login : OpenShift login _raw_params=login.yml] ***************** 2025-11-25 08:41:42,269 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.224) 0:01:37.066 ****** 2025-11-25 08:41:42,269 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.224) 0:01:37.064 ****** 2025-11-25 08:41:42,296 p=31436 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/openshift_login/tasks/login.yml for localhost 2025-11-25 08:41:42,304 p=31436 u=zuul n=ansible | TASK [openshift_login : Check if the password file is present path={{ cifmw_openshift_login_password_file | default(cifmw_openshift_password_file) }}] *** 2025-11-25 08:41:42,304 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.034) 0:01:37.101 ****** 2025-11-25 08:41:42,304 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.034) 0:01:37.099 ****** 2025-11-25 08:41:42,330 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,337 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch user password content src={{ cifmw_openshift_login_password_file | default(cifmw_openshift_password_file) }}] *** 2025-11-25 08:41:42,337 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.033) 0:01:37.134 ****** 2025-11-25 08:41:42,337 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.033) 0:01:37.132 ****** 2025-11-25 08:41:42,363 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,371 p=31436 u=zuul n=ansible | TASK [openshift_login : Set user password as a fact cifmw_openshift_login_password={{ cifmw_openshift_login_password_file_slurp.content | b64decode }}, cacheable=True] *** 2025-11-25 08:41:42,371 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.034) 0:01:37.168 ****** 2025-11-25 08:41:42,372 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.034) 0:01:37.166 ****** 2025-11-25 08:41:42,400 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,409 p=31436 u=zuul n=ansible | TASK [openshift_login : Set role variables cifmw_openshift_login_kubeconfig={{ cifmw_openshift_login_kubeconfig | default(cifmw_openshift_kubeconfig) | default( ansible_env.KUBECONFIG if 'KUBECONFIG' in ansible_env else cifmw_openshift_login_kubeconfig_default_path ) | trim }}, cifmw_openshift_login_user={{ cifmw_openshift_login_user | default(cifmw_openshift_user) | default(omit) }}, cifmw_openshift_login_password={{********** cifmw_openshift_login_password | default(cifmw_openshift_password) | default(omit) }}, cifmw_openshift_login_api={{ cifmw_openshift_login_api | default(cifmw_openshift_api) | default(omit) }}, cifmw_openshift_login_cert_login={{ cifmw_openshift_login_cert_login | default(false)}}, cifmw_openshift_login_provided_token={{ cifmw_openshift_provided_token | default(omit) }}, cacheable=True] *** 2025-11-25 08:41:42,410 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.038) 0:01:37.206 ****** 2025-11-25 08:41:42,410 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.038) 0:01:37.204 ****** 2025-11-25 08:41:42,439 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:42,446 p=31436 u=zuul n=ansible | TASK [openshift_login : Check if kubeconfig exists path={{ cifmw_openshift_login_kubeconfig }}] *** 2025-11-25 08:41:42,446 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.036) 0:01:37.242 ****** 2025-11-25 08:41:42,446 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.036) 0:01:37.241 ****** 2025-11-25 08:41:42,608 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:42,616 p=31436 u=zuul n=ansible | TASK [openshift_login : Assert that enough data is provided to log in to OpenShift that=cifmw_openshift_login_kubeconfig_stat.stat.exists or (cifmw_openshift_login_provided_token is defined and cifmw_openshift_login_provided_token != '') or ( (cifmw_openshift_login_user is defined) and (cifmw_openshift_login_password is defined) and (cifmw_openshift_login_api is defined) ), msg=If an existing kubeconfig is not provided user/pwd or provided/initial token and API URL must be given] *** 2025-11-25 08:41:42,616 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.170) 0:01:37.413 ****** 2025-11-25 08:41:42,616 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.170) 0:01:37.411 ****** 2025-11-25 08:41:42,640 p=31436 u=zuul n=ansible | ok: [localhost] => changed: false msg: All assertions passed 2025-11-25 08:41:42,648 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch kubeconfig content src={{ cifmw_openshift_login_kubeconfig }}] *** 2025-11-25 08:41:42,648 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.031) 0:01:37.444 ****** 2025-11-25 08:41:42,648 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.031) 0:01:37.442 ****** 2025-11-25 08:41:42,666 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,673 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch x509 key based users cifmw_openshift_login_key_based_users={{ ( cifmw_openshift_login_kubeconfig_content_b64.content | b64decode | from_yaml ). users | default([]) | selectattr('user.client-certificate-data', 'defined') | map(attribute="name") | map("split", "/") | map("first") }}, cacheable=True] *** 2025-11-25 08:41:42,673 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.025) 0:01:37.470 ****** 2025-11-25 08:41:42,673 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.025) 0:01:37.468 ****** 2025-11-25 08:41:42,691 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,699 p=31436 u=zuul n=ansible | TASK [openshift_login : Assign key based user if not provided and available cifmw_openshift_login_user={{ (cifmw_openshift_login_assume_cert_system_user | ternary('system:', '')) + (cifmw_openshift_login_key_based_users | map('replace', 'system:', '') | unique | first) }}, cifmw_openshift_login_cert_login=True, cacheable=True] *** 2025-11-25 08:41:42,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.025) 0:01:37.495 ****** 2025-11-25 08:41:42,699 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.025) 0:01:37.493 ****** 2025-11-25 08:41:42,717 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:42,725 p=31436 u=zuul n=ansible | TASK [openshift_login : Set the retry count cifmw_openshift_login_retries_cnt={{ 0 if cifmw_openshift_login_retries_cnt is undefined else cifmw_openshift_login_retries_cnt|int + 1 }}] *** 2025-11-25 08:41:42,725 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.026) 0:01:37.522 ****** 2025-11-25 08:41:42,725 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.026) 0:01:37.520 ****** 2025-11-25 08:41:42,747 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:42,754 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch token _raw_params=try_login.yml] ***************** 2025-11-25 08:41:42,754 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.029) 0:01:37.551 ****** 2025-11-25 08:41:42,755 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.029) 0:01:37.549 ****** 2025-11-25 08:41:42,782 p=31436 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/openshift_login/tasks/try_login.yml for localhost 2025-11-25 08:41:42,791 p=31436 u=zuul n=ansible | TASK [openshift_login : Try get OpenShift access token _raw_params=oc whoami -t] *** 2025-11-25 08:41:42,791 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.036) 0:01:37.588 ****** 2025-11-25 08:41:42,791 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:42 +0000 (0:00:00.036) 0:01:37.586 ****** 2025-11-25 08:41:43,079 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => changed: true cmd: - oc - whoami - -t delta: '0:00:00.108922' end: '2025-11-25 08:41:43.060757' msg: non-zero return code rc: 1 start: '2025-11-25 08:41:42.951835' stderr: |- error: Missing or incomplete configuration info. Please point to an existing, complete config file: 1. Via the command-line flag --kubeconfig 2. Via the KUBECONFIG environment variable 3. In your home directory as ~/.kube/config To view or setup config directly use the 'config' command. stderr_lines: - 'error: Missing or incomplete configuration info. Please point to an existing, complete config file:' - '' - '' - ' 1. Via the command-line flag --kubeconfig' - ' 2. Via the KUBECONFIG environment variable' - ' 3. In your home directory as ~/.kube/config' - '' - To view or setup config directly use the 'config' command. stdout: '' stdout_lines: [] 2025-11-25 08:41:43,079 p=31436 u=zuul n=ansible | ...ignoring 2025-11-25 08:41:43,087 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift token output_dir={{ cifmw_openshift_login_basedir }}/artifacts, script=oc login {%- if cifmw_openshift_login_provided_token is not defined %} {%- if cifmw_openshift_login_user is defined %} -u {{ cifmw_openshift_login_user }} {%- endif %} {%- if cifmw_openshift_login_password is defined %} -p {{ cifmw_openshift_login_password }} {%- endif %} {% else %} --token={{ cifmw_openshift_login_provided_token }} {%- endif %} {%- if cifmw_openshift_login_skip_tls_verify|bool %} --insecure-skip-tls-verify=true {%- endif %} {%- if cifmw_openshift_login_api is defined %} {{ cifmw_openshift_login_api }} {%- endif %}] *** 2025-11-25 08:41:43,087 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.295) 0:01:37.884 ****** 2025-11-25 08:41:43,087 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.296) 0:01:37.882 ****** 2025-11-25 08:41:43,136 p=31436 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_001_fetch_openshift.log 2025-11-25 08:41:43,497 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:43,505 p=31436 u=zuul n=ansible | TASK [openshift_login : Ensure kubeconfig is provided that=cifmw_openshift_login_kubeconfig != ""] *** 2025-11-25 08:41:43,505 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.417) 0:01:38.301 ****** 2025-11-25 08:41:43,505 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.417) 0:01:38.300 ****** 2025-11-25 08:41:43,522 p=31436 u=zuul n=ansible | ok: [localhost] => changed: false msg: All assertions passed 2025-11-25 08:41:43,529 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch new OpenShift access token _raw_params=oc whoami -t] *** 2025-11-25 08:41:43,529 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.024) 0:01:38.326 ****** 2025-11-25 08:41:43,529 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.024) 0:01:38.324 ****** 2025-11-25 08:41:43,868 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:43,876 p=31436 u=zuul n=ansible | TASK [openshift_login : Set new OpenShift token cifmw_openshift_login_token={{ (not cifmw_openshift_login_new_token_out.skipped | default(false)) | ternary(cifmw_openshift_login_new_token_out.stdout, cifmw_openshift_login_whoami_out.stdout) }}, cacheable=True] *** 2025-11-25 08:41:43,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.347) 0:01:38.673 ****** 2025-11-25 08:41:43,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.347) 0:01:38.671 ****** 2025-11-25 08:41:43,905 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:43,912 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift API URL _raw_params=oc whoami --show-server=true] *** 2025-11-25 08:41:43,912 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.036) 0:01:38.709 ****** 2025-11-25 08:41:43,912 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:43 +0000 (0:00:00.036) 0:01:38.707 ****** 2025-11-25 08:41:44,190 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:44,198 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift kubeconfig context _raw_params=oc whoami -c] *** 2025-11-25 08:41:44,198 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.285) 0:01:38.995 ****** 2025-11-25 08:41:44,198 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.286) 0:01:38.993 ****** 2025-11-25 08:41:44,470 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:44,477 p=31436 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift current user _raw_params=oc whoami] **** 2025-11-25 08:41:44,477 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.279) 0:01:39.274 ****** 2025-11-25 08:41:44,477 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.278) 0:01:39.272 ****** 2025-11-25 08:41:44,775 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:44,783 p=31436 u=zuul n=ansible | TASK [openshift_login : Set OpenShift user, context and API facts cifmw_openshift_login_api={{ cifmw_openshift_login_api_out.stdout }}, cifmw_openshift_login_context={{ cifmw_openshift_login_context_out.stdout }}, cifmw_openshift_login_user={{ _oauth_user }}, cifmw_openshift_kubeconfig={{ cifmw_openshift_login_kubeconfig }}, cifmw_openshift_api={{ cifmw_openshift_login_api_out.stdout }}, cifmw_openshift_context={{ cifmw_openshift_login_context_out.stdout }}, cifmw_openshift_user={{ _oauth_user }}, cifmw_openshift_token={{ cifmw_openshift_login_token | default(omit) }}, cifmw_install_yamls_environment={{ ( cifmw_install_yamls_environment | combine({'KUBECONFIG': cifmw_openshift_login_kubeconfig}) ) if cifmw_install_yamls_environment is defined else omit }}, cacheable=True] *** 2025-11-25 08:41:44,783 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.305) 0:01:39.579 ****** 2025-11-25 08:41:44,783 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.305) 0:01:39.578 ****** 2025-11-25 08:41:44,834 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:44,843 p=31436 u=zuul n=ansible | TASK [openshift_login : Create the openshift_login parameters file dest={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts/parameters/openshift-login-params.yml, content={{ cifmw_openshift_login_params_content | from_yaml | to_nice_yaml }}, mode=0600] *** 2025-11-25 08:41:44,843 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.060) 0:01:39.640 ****** 2025-11-25 08:41:44,843 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:44 +0000 (0:00:00.060) 0:01:39.638 ****** 2025-11-25 08:41:45,260 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:45,274 p=31436 u=zuul n=ansible | TASK [openshift_login : Read the install yamls parameters file path={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts/parameters/install-yamls-params.yml] *** 2025-11-25 08:41:45,274 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:45 +0000 (0:00:00.430) 0:01:40.071 ****** 2025-11-25 08:41:45,274 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:45 +0000 (0:00:00.431) 0:01:40.069 ****** 2025-11-25 08:41:45,572 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:45,579 p=31436 u=zuul n=ansible | TASK [openshift_login : Append the KUBECONFIG to the install yamls parameters content={{ cifmw_openshift_login_install_yamls_artifacts_slurp['content'] | b64decode | from_yaml | combine( { 'cifmw_install_yamls_environment': { 'KUBECONFIG': cifmw_openshift_login_kubeconfig } }, recursive=true) | to_nice_yaml }}, dest={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts/parameters/install-yamls-params.yml, mode=0600] *** 2025-11-25 08:41:45,579 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:45 +0000 (0:00:00.305) 0:01:40.376 ****** 2025-11-25 08:41:45,579 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:45 +0000 (0:00:00.305) 0:01:40.374 ****** 2025-11-25 08:41:46,103 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:46,115 p=31436 u=zuul n=ansible | TASK [openshift_setup : Ensure output directory exists path={{ cifmw_openshift_setup_basedir }}/artifacts, state=directory, mode=0755] *** 2025-11-25 08:41:46,116 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.536) 0:01:40.912 ****** 2025-11-25 08:41:46,116 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.536) 0:01:40.910 ****** 2025-11-25 08:41:46,299 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:46,308 p=31436 u=zuul n=ansible | TASK [openshift_setup : Fetch namespaces to create cifmw_openshift_setup_namespaces={{ (( ([cifmw_install_yamls_defaults['NAMESPACE']] + ([cifmw_install_yamls_defaults['OPERATOR_NAMESPACE']] if 'OPERATOR_NAMESPACE' is in cifmw_install_yamls_defaults else []) ) if cifmw_install_yamls_defaults is defined else [] ) + cifmw_openshift_setup_create_namespaces) | unique }}] *** 2025-11-25 08:41:46,308 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.192) 0:01:41.104 ****** 2025-11-25 08:41:46,308 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.192) 0:01:41.102 ****** 2025-11-25 08:41:46,331 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:46,342 p=31436 u=zuul n=ansible | TASK [openshift_setup : Create required namespaces kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit) }}, name={{ item }}, kind=Namespace, state=present] *** 2025-11-25 08:41:46,343 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.034) 0:01:41.139 ****** 2025-11-25 08:41:46,343 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:46 +0000 (0:00:00.034) 0:01:41.137 ****** 2025-11-25 08:41:47,263 p=31436 u=zuul n=ansible | changed: [localhost] => (item=openstack) 2025-11-25 08:41:47,968 p=31436 u=zuul n=ansible | changed: [localhost] => (item=openstack-operators) 2025-11-25 08:41:47,979 p=31436 u=zuul n=ansible | TASK [openshift_setup : Get internal OpenShift registry route kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=Route, name=default-route, namespace=openshift-image-registry] *** 2025-11-25 08:41:47,979 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:47 +0000 (0:00:01.636) 0:01:42.776 ****** 2025-11-25 08:41:47,979 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:47 +0000 (0:00:01.636) 0:01:42.774 ****** 2025-11-25 08:41:47,994 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,002 p=31436 u=zuul n=ansible | TASK [openshift_setup : Allow anonymous image-pulls in CRC registry for targeted namespaces state=present, kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, definition={'kind': 'RoleBinding', 'apiVersion': 'rbac.authorization.k8s.io/v1', 'metadata': {'name': 'system:image-puller', 'namespace': '{{ item }}'}, 'subjects': [{'kind': 'User', 'name': 'system:anonymous'}, {'kind': 'User', 'name': 'system:unauthenticated'}], 'roleRef': {'kind': 'ClusterRole', 'name': 'system:image-puller'}}] *** 2025-11-25 08:41:48,002 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.023) 0:01:42.799 ****** 2025-11-25 08:41:48,002 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.023) 0:01:42.797 ****** 2025-11-25 08:41:48,023 p=31436 u=zuul n=ansible | skipping: [localhost] => (item=openstack) 2025-11-25 08:41:48,024 p=31436 u=zuul n=ansible | skipping: [localhost] => (item=openstack-operators) 2025-11-25 08:41:48,025 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,032 p=31436 u=zuul n=ansible | TASK [openshift_setup : Wait for the image registry to be ready kind=Deployment, name=image-registry, namespace=openshift-image-registry, kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, wait=True, wait_sleep=10, wait_timeout=600, wait_condition={'type': 'Available', 'status': 'True'}] *** 2025-11-25 08:41:48,032 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.029) 0:01:42.829 ****** 2025-11-25 08:41:48,032 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.029) 0:01:42.827 ****** 2025-11-25 08:41:48,051 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,058 p=31436 u=zuul n=ansible | TASK [openshift_setup : Login into OpenShift internal registry output_dir={{ cifmw_openshift_setup_basedir }}/artifacts, script=podman login -u {{ cifmw_openshift_user }} -p {{ cifmw_openshift_token }} {%- if cifmw_openshift_setup_skip_internal_registry_tls_verify|bool %} --tls-verify=false {%- endif %} {{ cifmw_openshift_setup_registry_default_route.resources[0].spec.host }}] *** 2025-11-25 08:41:48,058 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.855 ****** 2025-11-25 08:41:48,059 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.853 ****** 2025-11-25 08:41:48,077 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,084 p=31436 u=zuul n=ansible | TASK [Ensure we have custom CA installed on host role=install_ca] ************** 2025-11-25 08:41:48,084 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.881 ****** 2025-11-25 08:41:48,084 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.879 ****** 2025-11-25 08:41:48,102 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,110 p=31436 u=zuul n=ansible | TASK [openshift_setup : Update ca bundle _raw_params=update-ca-trust extract] *** 2025-11-25 08:41:48,110 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.906 ****** 2025-11-25 08:41:48,110 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.904 ****** 2025-11-25 08:41:48,129 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,136 p=31436 u=zuul n=ansible | TASK [openshift_setup : Slurp CAs file src={{ cifmw_openshift_setup_ca_bundle_path }}] *** 2025-11-25 08:41:48,136 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.933 ****** 2025-11-25 08:41:48,136 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.931 ****** 2025-11-25 08:41:48,155 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,162 p=31436 u=zuul n=ansible | TASK [openshift_setup : Create config map with registry CAs kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, definition={'apiVersion': 'v1', 'kind': 'ConfigMap', 'metadata': {'namespace': 'openshift-config', 'name': 'registry-cas'}, 'data': '{{ _config_map_data | items2dict }}'}] *** 2025-11-25 08:41:48,162 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.959 ****** 2025-11-25 08:41:48,162 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:42.957 ****** 2025-11-25 08:41:48,179 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,188 p=31436 u=zuul n=ansible | TASK [openshift_setup : Install Red Hat CA for pulling images from internal registry kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, merge_type=merge, definition={'apiVersion': 'config.openshift.io/v1', 'kind': 'Image', 'metadata': {'name': 'cluster'}, 'spec': {'additionalTrustedCA': {'name': 'registry-cas'}}}] *** 2025-11-25 08:41:48,188 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.984 ****** 2025-11-25 08:41:48,188 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:42.982 ****** 2025-11-25 08:41:48,205 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,213 p=31436 u=zuul n=ansible | TASK [openshift_setup : Add insecure registry kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, merge_type=merge, definition={'apiVersion': 'config.openshift.io/v1', 'kind': 'Image', 'metadata': {'name': 'cluster'}, 'spec': {'registrySources': {'insecureRegistries': ['{{ cifmw_update_containers_registry }}'], 'allowedRegistries': '{{ all_registries }}'}}}] *** 2025-11-25 08:41:48,213 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:43.010 ****** 2025-11-25 08:41:48,213 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.025) 0:01:43.008 ****** 2025-11-25 08:41:48,232 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,239 p=31436 u=zuul n=ansible | TASK [openshift_setup : Create a ICSP with repository digest mirrors kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, definition={'apiVersion': 'operator.openshift.io/v1alpha1', 'kind': 'ImageContentSourcePolicy', 'metadata': {'name': 'registry-digest-mirrors'}, 'spec': {'repositoryDigestMirrors': '{{ cifmw_openshift_setup_digest_mirrors }}'}}] *** 2025-11-25 08:41:48,240 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:43.036 ****** 2025-11-25 08:41:48,240 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.026) 0:01:43.034 ****** 2025-11-25 08:41:48,261 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:48,268 p=31436 u=zuul n=ansible | TASK [openshift_setup : Gather network.operator info kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, api_version=operator.openshift.io/v1, kind=Network, name=cluster] *** 2025-11-25 08:41:48,268 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.028) 0:01:43.065 ****** 2025-11-25 08:41:48,269 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:48 +0000 (0:00:00.028) 0:01:43.063 ****** 2025-11-25 08:41:49,152 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:49,166 p=31436 u=zuul n=ansible | TASK [openshift_setup : Patch network operator api_version=operator.openshift.io/v1, kubeconfig={{ cifmw_openshift_kubeconfig }}, kind=Network, name=cluster, persist_config=True, patch=[{'path': '/spec/defaultNetwork/ovnKubernetesConfig/gatewayConfig/routingViaHost', 'value': True, 'op': 'replace'}, {'path': '/spec/defaultNetwork/ovnKubernetesConfig/gatewayConfig/ipForwarding', 'value': 'Global', 'op': 'replace'}]] *** 2025-11-25 08:41:49,166 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:49 +0000 (0:00:00.897) 0:01:43.963 ****** 2025-11-25 08:41:49,166 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:49 +0000 (0:00:00.897) 0:01:43.961 ****** 2025-11-25 08:41:50,103 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:50,120 p=31436 u=zuul n=ansible | TASK [openshift_setup : Patch samples registry configuration kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, api_version=samples.operator.openshift.io/v1, kind=Config, name=cluster, patch=[{'op': 'replace', 'path': '/spec/samplesRegistry', 'value': 'registry.redhat.io'}]] *** 2025-11-25 08:41:50,120 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.954) 0:01:44.917 ****** 2025-11-25 08:41:50,121 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.954) 0:01:44.915 ****** 2025-11-25 08:41:50,867 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:50,874 p=31436 u=zuul n=ansible | TASK [openshift_setup : Delete the pods from openshift-marketplace namespace kind=Pod, state=absent, delete_all=True, kubeconfig={{ cifmw_openshift_kubeconfig }}, namespace=openshift-marketplace] *** 2025-11-25 08:41:50,874 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.754) 0:01:45.671 ****** 2025-11-25 08:41:50,874 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.753) 0:01:45.669 ****** 2025-11-25 08:41:50,887 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:50,895 p=31436 u=zuul n=ansible | TASK [openshift_setup : Wait for openshift-marketplace pods to be running _raw_params=oc wait pod --all --for=condition=Ready -n openshift-marketplace --timeout=1m] *** 2025-11-25 08:41:50,895 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.020) 0:01:45.692 ****** 2025-11-25 08:41:50,895 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.020) 0:01:45.690 ****** 2025-11-25 08:41:50,909 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:50,921 p=31436 u=zuul n=ansible | TASK [Attach default network to CRC name=install_yamls_makes, tasks_from=make_crc_attach_default_interface] *** 2025-11-25 08:41:50,921 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.026) 0:01:45.718 ****** 2025-11-25 08:41:50,922 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.026) 0:01:45.716 ****** 2025-11-25 08:41:50,980 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_crc_attach_default_interface_env var=make_crc_attach_default_interface_env] *** 2025-11-25 08:41:50,980 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.058) 0:01:45.777 ****** 2025-11-25 08:41:50,980 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:50 +0000 (0:00:00.058) 0:01:45.775 ****** 2025-11-25 08:41:50,998 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:51,006 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_crc_attach_default_interface_params var=make_crc_attach_default_interface_params] *** 2025-11-25 08:41:51,006 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:51 +0000 (0:00:00.025) 0:01:45.803 ****** 2025-11-25 08:41:51,006 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:51 +0000 (0:00:00.025) 0:01:45.801 ****** 2025-11-25 08:41:51,025 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:51,033 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Run crc_attach_default_interface output_dir={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts, chdir=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/devsetup, script=make crc_attach_default_interface, dry_run={{ make_crc_attach_default_interface_dryrun|default(false)|bool }}, extra_args={{ dict((make_crc_attach_default_interface_env|default({})), **(make_crc_attach_default_interface_params|default({}))) }}] *** 2025-11-25 08:41:51,033 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:51 +0000 (0:00:00.026) 0:01:45.830 ****** 2025-11-25 08:41:51,033 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:51 +0000 (0:00:00.026) 0:01:45.828 ****** 2025-11-25 08:41:51,069 p=31436 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_002_run_crc_attach_default.log 2025-11-25 08:41:56,208 p=31436 u=zuul n=ansible | [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ make_crc_attach_default_interface_until | default(true) }} 2025-11-25 08:41:56,210 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:41:56,222 p=31436 u=zuul n=ansible | TASK [run_hook : Assert parameters are valid quiet=True, that=['_list_hooks is not string', '_list_hooks is not mapping', '_list_hooks is iterable', '(hooks | default([])) is not string', '(hooks | default([])) is not mapping', '(hooks | default([])) is iterable']] *** 2025-11-25 08:41:56,222 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:05.189) 0:01:51.019 ****** 2025-11-25 08:41:56,222 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:05.189) 0:01:51.017 ****** 2025-11-25 08:41:56,275 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:56,286 p=31436 u=zuul n=ansible | TASK [run_hook : Assert single hooks are all mappings quiet=True, that=['_not_mapping_hooks | length == 0'], msg=All single hooks must be a list of mappings or a mapping.] *** 2025-11-25 08:41:56,286 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.063) 0:01:51.083 ****** 2025-11-25 08:41:56,286 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.063) 0:01:51.081 ****** 2025-11-25 08:41:56,359 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:56,372 p=31436 u=zuul n=ansible | TASK [run_hook : Loop on hooks for pre_kuttl _raw_params={{ hook.type }}.yml] *** 2025-11-25 08:41:56,372 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.085) 0:01:51.169 ****** 2025-11-25 08:41:56,372 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.085) 0:01:51.167 ****** 2025-11-25 08:41:56,452 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:56,467 p=31436 u=zuul n=ansible | TASK [Run kuttl tests _raw_params=run-kuttl-tests.yml] ************************* 2025-11-25 08:41:56,467 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.094) 0:01:51.263 ****** 2025-11-25 08:41:56,467 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.094) 0:01:51.262 ****** 2025-11-25 08:41:56,503 p=31436 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/ci/playbooks/kuttl/run-kuttl-tests.yml for localhost => (item=keystone) 2025-11-25 08:41:56,529 p=31436 u=zuul n=ansible | TASK [Load parameters dir={{ cifmw_basedir }}/artifacts/parameters] ************ 2025-11-25 08:41:56,529 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.062) 0:01:51.326 ****** 2025-11-25 08:41:56,529 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.062) 0:01:51.324 ****** 2025-11-25 08:41:56,572 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:56,581 p=31436 u=zuul n=ansible | TASK [Use the locally built operators if any _local_operators_indexes={{ _local_operators_indexes|default({}) | combine({ item.key.split('-')[0]|upper+'_IMG': cifmw_operator_build_output['operators'][item.key].image_catalog}) }}] *** 2025-11-25 08:41:56,581 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.052) 0:01:51.378 ****** 2025-11-25 08:41:56,581 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.052) 0:01:51.376 ****** 2025-11-25 08:41:56,612 p=31436 u=zuul n=ansible | ok: [localhost] => (item={'key': 'keystone-operator', 'value': {'git_commit_hash': '99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'git_src_dir': '/home/zuul/src/github.com/openstack-k8s-operators/keystone-operator', 'image': '38.129.56.231:5001/openstack-k8s-operators/keystone-operator:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'image_bundle': '38.129.56.231:5001/openstack-k8s-operators/keystone-operator-bundle:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a', 'image_catalog': '38.129.56.231:5001/openstack-k8s-operators/keystone-operator-index:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a'}}) 2025-11-25 08:41:56,622 p=31436 u=zuul n=ansible | ok: [localhost] => (item={'key': 'openstack-operator', 'value': {'git_commit_hash': '17b1faec894dfcad58164b52f38cf6acda76f9dc', 'git_src_dir': '~/src/github.com/openstack-k8s-operators/openstack-operator', 'image': '38.129.56.231:5001/openstack-k8s-operators/openstack-operator:17b1faec894dfcad58164b52f38cf6acda76f9dc', 'image_bundle': '38.129.56.231:5001/openstack-k8s-operators/openstack-operator-bundle:17b1faec894dfcad58164b52f38cf6acda76f9dc', 'image_catalog': '38.129.56.231:5001/openstack-k8s-operators/openstack-operator-index:17b1faec894dfcad58164b52f38cf6acda76f9dc'}}) 2025-11-25 08:41:56,630 p=31436 u=zuul n=ansible | TASK [Set environment vars for kuttl test cifmw_kuttl_tests_env={{ _local_operators_indexes | default({}) | combine(cifmw_install_yamls_environment) | combine(cifmw_kuttl_tests_env_vars | default({})) | combine(cifmw_kuttl_openstack_prep_vars | default({})) | combine({'PATH': cifmw_path}) }}] *** 2025-11-25 08:41:56,630 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.048) 0:01:51.427 ****** 2025-11-25 08:41:56,630 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.048) 0:01:51.425 ****** 2025-11-25 08:41:56,649 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:56,656 p=31436 u=zuul n=ansible | TASK [Clean storage beforehand name=ci_local_storage, tasks_from=cleanup.yml] *** 2025-11-25 08:41:56,656 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.025) 0:01:51.452 ****** 2025-11-25 08:41:56,656 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.025) 0:01:51.451 ****** 2025-11-25 08:41:56,692 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Get all pvs kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=PersistentVolume, label_selectors=['provisioned-by={{ cifmw_cls_storage_provisioner }}']] *** 2025-11-25 08:41:56,693 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.036) 0:01:51.489 ****** 2025-11-25 08:41:56,693 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:56 +0000 (0:00:00.036) 0:01:51.487 ****** 2025-11-25 08:41:57,386 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:57,393 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Export PVs as facts cifmw_cls_pvs={{ _pv_info.resources | selectattr("metadata.name", "defined") | map(attribute="metadata.name") }}] *** 2025-11-25 08:41:57,394 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.701) 0:01:52.190 ****** 2025-11-25 08:41:57,394 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.701) 0:01:52.188 ****** 2025-11-25 08:41:57,414 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:57,423 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Delete all pvs kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=PersistentVolume, state=absent, api_version=v1, namespace={{ cifmw_cls_namespace }}, name={{ item }}] *** 2025-11-25 08:41:57,423 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.029) 0:01:52.220 ****** 2025-11-25 08:41:57,423 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.029) 0:01:52.218 ****** 2025-11-25 08:41:57,438 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:41:57,446 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Get k8s nodes kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=Node] *** 2025-11-25 08:41:57,446 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.022) 0:01:52.242 ****** 2025-11-25 08:41:57,446 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:57 +0000 (0:00:00.022) 0:01:52.240 ****** 2025-11-25 08:41:58,216 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:58,226 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Fetch hostnames for all hosts _raw_params=hostname] *** 2025-11-25 08:41:58,226 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:58 +0000 (0:00:00.780) 0:01:53.022 ****** 2025-11-25 08:41:58,226 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:58 +0000 (0:00:00.780) 0:01:53.021 ****** 2025-11-25 08:41:59,111 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=crc) 2025-11-25 08:41:59,619 p=31436 u=zuul n=ansible | changed: [localhost -> controller(38.102.83.98)] => (item=controller) 2025-11-25 08:41:59,810 p=31436 u=zuul n=ansible | changed: [localhost] => (item=localhost) 2025-11-25 08:41:59,812 p=31436 u=zuul n=ansible | [WARNING]: Platform linux on host localhost is using the discovered Python interpreter at /usr/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.15/reference_appendices/interpreter_discovery.html for more information. 2025-11-25 08:41:59,829 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Set the hosts k8s ansible hosts cifmw_ci_local_storage_k8s_hosts={{ _host_map | selectattr("key", "in", k8s_nodes_hostnames) | map(attribute="value") | list }}, cifmw_ci_local_storage_k8s_hostnames={{ k8s_nodes_hostnames }}] *** 2025-11-25 08:41:59,829 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:01.603) 0:01:54.626 ****** 2025-11-25 08:41:59,829 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:01.603) 0:01:54.624 ****** 2025-11-25 08:41:59,868 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:41:59,876 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Delete directories on worker node _raw_params=worker_node_dirs.yml] *** 2025-11-25 08:41:59,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:00.047) 0:01:54.673 ****** 2025-11-25 08:41:59,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:00.047) 0:01:54.671 ****** 2025-11-25 08:41:59,899 p=31436 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/ci_local_storage/tasks/worker_node_dirs.yml for localhost => (item=crc) 2025-11-25 08:41:59,911 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Perform action in the PV directory path={{ [ cifmw_cls_local_storage_name, 'pv'+ ("%02d" | format(item | int)) ] | path_join }}, state={{ 'directory' if cifmw_cls_action == 'create' else 'absent' }}, mode=0775] *** 2025-11-25 08:41:59,911 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:00.034) 0:01:54.708 ****** 2025-11-25 08:41:59,911 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:41:59 +0000 (0:00:00.034) 0:01:54.706 ****** 2025-11-25 08:42:00,433 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=1) 2025-11-25 08:42:00,947 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=2) 2025-11-25 08:42:01,534 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=3) 2025-11-25 08:42:01,970 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=4) 2025-11-25 08:42:02,446 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=5) 2025-11-25 08:42:02,974 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=6) 2025-11-25 08:42:03,467 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=7) 2025-11-25 08:42:03,888 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=8) 2025-11-25 08:42:04,393 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=9) 2025-11-25 08:42:04,877 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=10) 2025-11-25 08:42:05,406 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=11) 2025-11-25 08:42:05,925 p=31436 u=zuul n=ansible | ok: [localhost -> crc(38.102.83.222)] => (item=12) 2025-11-25 08:42:05,948 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Remove the cifmw_cls_namespace namespace state=absent, kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=Namespace, name={{ cifmw_cls_namespace }}, wait=True, wait_timeout=300] *** 2025-11-25 08:42:05,949 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:05 +0000 (0:00:06.037) 0:02:00.745 ****** 2025-11-25 08:42:05,949 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:05 +0000 (0:00:06.037) 0:02:00.744 ****** 2025-11-25 08:42:16,806 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:16,828 p=31436 u=zuul n=ansible | TASK [Create storage name=ci_local_storage] ************************************ 2025-11-25 08:42:16,828 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:16 +0000 (0:00:10.879) 0:02:11.625 ****** 2025-11-25 08:42:16,828 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:16 +0000 (0:00:10.879) 0:02:11.623 ****** 2025-11-25 08:42:16,890 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Create role needed directories path={{ cifmw_cls_manifests_dir }}, state=directory, mode=0755] *** 2025-11-25 08:42:16,890 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:16 +0000 (0:00:00.061) 0:02:11.686 ****** 2025-11-25 08:42:16,890 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:16 +0000 (0:00:00.061) 0:02:11.685 ****** 2025-11-25 08:42:17,135 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:17,145 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Create the cifmw_cls_namespace namespace" kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit) }}, name={{ cifmw_cls_namespace }}, kind=Namespace, state=present] *** 2025-11-25 08:42:17,145 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:17 +0000 (0:00:00.255) 0:02:11.942 ****** 2025-11-25 08:42:17,145 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:17 +0000 (0:00:00.255) 0:02:11.940 ****** 2025-11-25 08:42:17,867 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:17,876 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Save storage manifests as artifacts dest={{ cifmw_cls_manifests_dir }}/storage-class.yaml, content={{ cifmw_cls_storage_manifest | to_nice_yaml }}, mode=0644] *** 2025-11-25 08:42:17,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:17 +0000 (0:00:00.730) 0:02:12.673 ****** 2025-11-25 08:42:17,876 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:17 +0000 (0:00:00.730) 0:02:12.671 ****** 2025-11-25 08:42:18,255 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:18,269 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Get k8s nodes kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit)}}, context={{ cifmw_openshift_context | default(omit)}}, kind=Node] *** 2025-11-25 08:42:18,269 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:18 +0000 (0:00:00.392) 0:02:13.066 ****** 2025-11-25 08:42:18,269 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:18 +0000 (0:00:00.392) 0:02:13.064 ****** 2025-11-25 08:42:19,020 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:42:19,030 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Fetch hostnames for all hosts _raw_params=hostname] *** 2025-11-25 08:42:19,030 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:19 +0000 (0:00:00.760) 0:02:13.826 ****** 2025-11-25 08:42:19,030 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:19 +0000 (0:00:00.760) 0:02:13.825 ****** 2025-11-25 08:42:19,457 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=crc) 2025-11-25 08:42:19,818 p=31436 u=zuul n=ansible | changed: [localhost -> controller(38.102.83.98)] => (item=controller) 2025-11-25 08:42:19,991 p=31436 u=zuul n=ansible | changed: [localhost] => (item=localhost) 2025-11-25 08:42:20,012 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Set the hosts k8s ansible hosts cifmw_ci_local_storage_k8s_hosts={{ _host_map | selectattr("key", "in", k8s_nodes_hostnames) | map(attribute="value") | list }}, cifmw_ci_local_storage_k8s_hostnames={{ k8s_nodes_hostnames }}] *** 2025-11-25 08:42:20,012 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.982) 0:02:14.809 ****** 2025-11-25 08:42:20,012 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.982) 0:02:14.807 ****** 2025-11-25 08:42:20,047 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:42:20,063 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Apply the storage class manifests kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit) }}, context={{ cifmw_openshift_context | default(omit) }}, state=present, src={{ cifmw_cls_manifests_dir }}/storage-class.yaml] *** 2025-11-25 08:42:20,064 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.051) 0:02:14.860 ****** 2025-11-25 08:42:20,064 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.051) 0:02:14.859 ****** 2025-11-25 08:42:20,753 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:20,760 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Create directories on worker node _raw_params=worker_node_dirs.yml] *** 2025-11-25 08:42:20,761 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.696) 0:02:15.557 ****** 2025-11-25 08:42:20,761 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.696) 0:02:15.555 ****** 2025-11-25 08:42:20,787 p=31436 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/ci_local_storage/tasks/worker_node_dirs.yml for localhost => (item=crc) 2025-11-25 08:42:20,798 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Perform action in the PV directory path={{ [ cifmw_cls_local_storage_name, 'pv'+ ("%02d" | format(item | int)) ] | path_join }}, state={{ 'directory' if cifmw_cls_action == 'create' else 'absent' }}, mode=0775] *** 2025-11-25 08:42:20,798 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.037) 0:02:15.595 ****** 2025-11-25 08:42:20,798 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:20 +0000 (0:00:00.037) 0:02:15.593 ****** 2025-11-25 08:42:21,348 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=1) 2025-11-25 08:42:21,883 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=2) 2025-11-25 08:42:22,398 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=3) 2025-11-25 08:42:22,854 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=4) 2025-11-25 08:42:23,327 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=5) 2025-11-25 08:42:23,848 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=6) 2025-11-25 08:42:24,281 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=7) 2025-11-25 08:42:24,771 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=8) 2025-11-25 08:42:25,364 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=9) 2025-11-25 08:42:25,855 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=10) 2025-11-25 08:42:26,249 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=11) 2025-11-25 08:42:26,687 p=31436 u=zuul n=ansible | changed: [localhost -> crc(38.102.83.222)] => (item=12) 2025-11-25 08:42:26,712 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Generate pv related storage manifest file src=storage.yaml.j2, dest={{ cifmw_cls_manifests_dir }}/storage.yaml, mode=0644] *** 2025-11-25 08:42:26,712 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:26 +0000 (0:00:05.913) 0:02:21.509 ****** 2025-11-25 08:42:26,712 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:26 +0000 (0:00:05.913) 0:02:21.507 ****** 2025-11-25 08:42:27,185 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:27,192 p=31436 u=zuul n=ansible | TASK [ci_local_storage : Apply pv related storage manifest file kubeconfig={{ cifmw_openshift_kubeconfig }}, api_key={{ cifmw_openshift_token | default(omit) }}, context={{ cifmw_openshift_context | default(omit) }}, state=present, src={{ cifmw_cls_manifests_dir }}/storage.yaml] *** 2025-11-25 08:42:27,192 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:27 +0000 (0:00:00.480) 0:02:21.989 ****** 2025-11-25 08:42:27,193 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:27 +0000 (0:00:00.480) 0:02:21.987 ****** 2025-11-25 08:42:28,021 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:42:28,045 p=31436 u=zuul n=ansible | TASK [Get resource status before keystone_kuttl run _raw_params={{ item }} >> {{ cifmw_artifacts_basedir }}/logs/cmd_before_{{ operator }}_kuttl.log ] *** 2025-11-25 08:42:28,045 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.852) 0:02:22.841 ****** 2025-11-25 08:42:28,045 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.852) 0:02:22.840 ****** 2025-11-25 08:42:28,060 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => msg: '''commands_before_kuttl_run'' is undefined. ''commands_before_kuttl_run'' is undefined' 2025-11-25 08:42:28,060 p=31436 u=zuul n=ansible | ...ignoring 2025-11-25 08:42:28,069 p=31436 u=zuul n=ansible | TASK [Set make_keystone_kuttl_env vars make_{{ operator }}_kuttl_env={{ cifmw_kuttl_tests_env }}] *** 2025-11-25 08:42:28,069 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.023) 0:02:22.865 ****** 2025-11-25 08:42:28,069 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.023) 0:02:22.863 ****** 2025-11-25 08:42:28,092 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:42:28,100 p=31436 u=zuul n=ansible | TASK [Run make_keystone_kuttl name=install_yamls_makes, tasks_from=make_{{ operator }}_kuttl.yml, apply={'ignore_errors': True}] *** 2025-11-25 08:42:28,100 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.031) 0:02:22.897 ****** 2025-11-25 08:42:28,100 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.031) 0:02:22.895 ****** 2025-11-25 08:42:28,159 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_keystone_kuttl_env var=make_keystone_kuttl_env] *** 2025-11-25 08:42:28,159 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.059) 0:02:22.956 ****** 2025-11-25 08:42:28,160 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.059) 0:02:22.954 ****** 2025-11-25 08:42:28,185 p=31436 u=zuul n=ansible | ok: [localhost] => make_keystone_kuttl_env: BMO_SETUP: false CHECKOUT_FROM_OPENSTACK_REF: 'true' KEYSTONE_BRANCH: '' KEYSTONE_IMG: 38.129.56.231:5001/openstack-k8s-operators/keystone-operator-index:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a KEYSTONE_REPO: /home/zuul/src/github.com/openstack-k8s-operators/keystone-operator KUBECONFIG: /home/zuul/.crc/machines/crc/kubeconfig OPENSTACK_IMG: 38.129.56.231:5001/openstack-k8s-operators/openstack-operator-index:17b1faec894dfcad58164b52f38cf6acda76f9dc OPENSTACK_K8S_BRANCH: main OUT: /home/zuul/ci-framework-data/artifacts/manifests OUTPUT_DIR: /home/zuul/ci-framework-data/artifacts/edpm PATH: /home/zuul/.crc/bin:/home/zuul/.crc/bin/oc:/home/zuul/bin:/home/zuul/.local/bin:/home/zuul/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin 2025-11-25 08:42:28,193 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_keystone_kuttl_params var=make_keystone_kuttl_params] *** 2025-11-25 08:42:28,193 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.033) 0:02:22.990 ****** 2025-11-25 08:42:28,193 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.033) 0:02:22.988 ****** 2025-11-25 08:42:28,211 p=31436 u=zuul n=ansible | skipping: [localhost] 2025-11-25 08:42:28,219 p=31436 u=zuul n=ansible | TASK [install_yamls_makes : Run keystone_kuttl output_dir={{ cifmw_basedir|default(ansible_user_dir ~ '/ci-framework-data') }}/artifacts, chdir=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls, script=make keystone_kuttl, dry_run={{ make_keystone_kuttl_dryrun|default(false)|bool }}, extra_args={{ dict((make_keystone_kuttl_env|default({})), **(make_keystone_kuttl_params|default({}))) }}] *** 2025-11-25 08:42:28,219 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.025) 0:02:23.015 ****** 2025-11-25 08:42:28,219 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:42:28 +0000 (0:00:00.025) 0:02:23.014 ****** 2025-11-25 08:42:28,260 p=31436 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_003_run_keystone.log 2025-11-25 08:56:04,118 p=31436 u=zuul n=ansible | [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ make_keystone_kuttl_until | default(true) }} 2025-11-25 08:56:04,238 p=31436 u=zuul n=ansible | An exception occurred during task execution. To see the full traceback, use -vvv. The error was: NoneType: None 2025-11-25 08:56:04,414 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => attempts: 1 changed: true msg: non-zero return code rc: 2 stderr: '' stderr_lines: [] stdout: "~/src/github.com/openstack-k8s-operators/install_yamls ~/ci-framework-data/artifacts\nerror: the server doesn't have a resource type \"openstackversion\"\nbash scripts/gen-namespace.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']'\n+ '[' -z keystone-kuttl-tests ']'\n+ OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/namespace.yaml\nnamespace/keystone-kuttl-tests created\ntimeout 500s bash -c \"while ! (oc get project.v1.project.openshift.io keystone-kuttl-tests); do sleep 1; done\"\nNAME DISPLAY NAME STATUS\nkeystone-kuttl-tests \ Active\noc project keystone-kuttl-tests\nNow using project \"keystone-kuttl-tests\" on server \"https://api.crc.testing:6443\".\nbash scripts/gen-input-kustomize.sh\n+ OUT=/home/zuul/ci-framework-data/artifacts/manifests\n+ '[' -z keystone-kuttl-tests ']'\n+ '[' -z osp-secret ']'\n+ '[' -z 12345678 ']'\n+ '[' -z 1234567842 ']'\n+ '[' -z 767c3ed056cbaa3b9dfedb8c6f825bf0 ']'\n+ '[' -z sEFmdFjDUqRM2VemYslV5yGNWjokioJXsg8Nrlc3drU= ']'\n+ '[' -z COX8bmlKAWn56XCGMrKQJj7dgHNAOl6f ']'\n+ '[' -z openstack ']'\n+ '[' -z libvirt-secret ']'\n+ DIR=/home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input\n+ pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input\n~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input ~/src/github.com/openstack-k8s-operators/install_yamls\n+ cat\noc get secret/osp-secret || oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/input | oc apply -f -\nError from server (NotFound): secrets \"osp-secret\" not found\nsecret/libvirt-secret created\nsecret/octavia-ca-passphrase created\nsecret/osp-secret created\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/manila-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/manila/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists manila;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/heat-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/heat/cr\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/horizon-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/horizon/cr\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/nova-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/nova/cr\noc rsh openstack-galera-0 mysql -u root --password=12**********78 -ss -e \"show databases like 'nova_%';\" | xargs -I '{}' oc rsh openstack-galera-0 mysql -u root --password=12**********78 -ss -e \"flush tables; drop database if exists {};\"\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra-redis/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -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\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/octavia-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/octavia/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists octavia;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/designate-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/designate/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists designate;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/neutron-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/neutron/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists neutron;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ovn-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ovn/cr\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/ironic/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists ironic;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists ironic_inspector;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/cinder-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/cinder/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists cinder;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/glance-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/glance/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists glance;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/placement-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/placement/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists placement;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/swift-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/swift/cr\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/barbican-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/barbican/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists barbican;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists keystone;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/mariadb-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/telemetry-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/ceilometer-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/telemetry/cr\noc rsh -t openstack-galera-0 mysql -u root --password=12**********78 -e \"flush tables; drop database if exists aodh;\" || true\nError from server (NotFound): pods \"openstack-galera-0\" not found\noc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr | oc delete --ignore-not-found=true -f -\nerror: 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\nNo resources found\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/infra-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr\nif oc get RabbitmqCluster; then oc delete --ignore-not-found=true RabbitmqCluster --all; fi\nerror: the server doesn't have a resource type \"RabbitmqCluster\"\nrm -Rf /home/zuul/ci-framework-data/artifacts/manifests/operator/rabbitmq-operator /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr\nbash scripts/gen-namespace.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']'\n+ '[' -z openstack-operators ']'\n+ OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/openstack-operators\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/namespace.yaml\nWarning: 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.\nnamespace/openstack-operators configured\ntimeout 500s bash -c \"while ! (oc get project.v1.project.openshift.io openstack-operators); do sleep 1; done\"\nNAME DISPLAY NAME STATUS\nopenstack-operators \ Active\noc project openstack-operators\nNow using project \"openstack-operators\" on server \"https://api.crc.testing:6443\".\nbash scripts/gen-olm.sh\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' -z quay.io/openstack-k8s-operators/mariadb-operator-index:latest ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op\n+ OPERATOR_CHANNEL=alpha\n+ OPERATOR_SOURCE=mariadb-operator-index\n+ OPERATOR_SOURCE_NAMESPACE=openstack-operators\n+ echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op\nOPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op\n+ echo OPERATOR_CHANNEL alpha\nOPERATOR_CHANNEL alpha\n+ echo OPERATOR_SOURCE mariadb-operator-index\nOPERATOR_SOURCE mariadb-operator-index\n+ echo OPERATOR_SOURCE_NAMESPACE openstack-operators\nOPERATOR_SOURCE_NAMESPACE openstack-operators\n+ cat\n+ cat\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/mariadb/op\ncatalogsource.operators.coreos.com/mariadb-operator-index created\noperatorgroup.operators.coreos.com/openstack created\nsubscription.operators.coreos.com/mariadb-operator created\nmkdir -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\nbash scripts/clone-operator-repo.sh\nCloning repo: git clone -b main https://github.com/openstack-k8s-operators/openstack-operator.git openstack-operator\nCloning into 'openstack-operator'...\nCloning repo: git clone \ -b main https://github.com/openstack-k8s-operators/mariadb-operator.git mariadb-operator\nCloning into 'mariadb-operator'...\nRunning checkout: git checkout 231c653930d1\nNote: switching to '231c653930d1'.\n\nYou are in 'detached HEAD' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by switching back to a branch.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -c with the switch command. Example:\n\n git switch -c \n\nOr undo this operation with:\n\n git switch -\n\nTurn off this advice by setting config variable advice.detachedHead to false\n\nHEAD is now at 231c653 Merge pull request #379 from dciabrin/pwd-wsrep-notify\ncp /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\nbash scripts/gen-service-kustomize.sh\n+++ dirname scripts/gen-service-kustomize.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only\n++ set -e\n+ '[' -z keystone-kuttl-tests ']'\n+ '[' -z Galera ']'\n+ '[' -z osp-secret ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']'\n+ '[' -n '' ']'\n+ REPLACEMENTS=\n+ IMAGE=unused\n+ IMAGE_PATH=containerImage\n+ STORAGE_REQUEST=10G\n+ INTERFACE_MTU=1500\n+ VLAN_START=20\n+ VLAN_STEP=1\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']'\n+ pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr\n~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ~/src/github.com/openstack-k8s-operators/install_yamls\n+ cat\n+ [[ Galera == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ IFS=,\n+ read -ra IMAGES\n+ IFS=,\n+ read -ra IMAGE_PATHS\n+ '[' 1 '!=' 1 ']'\n+ (( i=0 ))\n+ (( i < 1 ))\n+ SPEC_PATH=containerImage\n+ SPEC_VALUE=unused\n+ '[' unused '!=' unused ']'\n+ (( i++ ))\n+ (( i < 1 ))\n+ '[' -n '' ']'\n+ '[' Galera == OpenStackControlPlane ']'\n+ '[' Galera == Galera ']'\n+ cat\n+ '[' Galera == NetConfig ']'\n+ '[' -n '' ']'\n+ [[ Galera == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ [[ Galera == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ '[' -n '' ']'\n+ kustomization_add_resources\n+ echo merge config dir\nmerge config dir\n++ find . -type f -name '*.yaml'\n++ grep -v kustomization\n+ yamls=./mariadb_v1beta1_galera.yaml\n+ for y in ${yamls[@]}\n+ kustomize edit add resource ./mariadb_v1beta1_galera.yaml\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\nmake wait\nmake[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nerror: the server doesn't have a resource type \"openstackversion\"\nbash scripts/operator-wait.sh\n+ TIMEOUT=500s\n+++ dirname scripts/operator-wait.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq ']'\n+ pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls\n+ timeout 500s bash -c 'until [ \"$(bash ./get-operator-status.sh)\" == \"Succeeded\" ]; do sleep 5; done'\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ jq -e .status.availableReplicas\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"mariadb-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z mariadb ']'\n+ '[' mariadb = rabbitmq-cluster ']'\n+ DEPL_NAME=mariadb-operator-controller-manager\n++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=1\n+ '[' 1 '!=' 1 ']'\n+ echo Succeeded\n+ exit 0\n+ rc=0\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\n+ exit 0\nmake[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nbash scripts/operator-deploy-resources.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr ']'\n+ NEXT_WAIT_TIME=0\n+ '[' 0 -eq 15 ']'\n+ oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/mariadb/cr\n+ oc apply -f -\ngalera.mariadb.openstack.org/openstack created\n+ '[' 0 -lt 15 ']'\nbash scripts/gen-namespace.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests ']'\n+ '[' -z metallb-system ']'\n+ OUT_DIR=/home/zuul/ci-framework-data/artifacts/manifests/metallb-system\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/metallb-system ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/metallb-system\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/namespace.yaml\nnamespace/metallb-system created\ntimeout 500s bash -c \"while ! (oc get project.v1.project.openshift.io metallb-system); do sleep 1; done\"\nNAME DISPLAY NAME STATUS\nmetallb-system \ Active\nbash scripts/gen-olm-metallb.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr\n+ echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op\nOPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op\n+ echo DEPLOY_DIR /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr\nDEPLOY_DIR /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr\n+ echo INTERFACE\nINTERFACE\n+ cat\n+ cat\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/metallb/op\noperatorgroup.operators.coreos.com/metallb-operator created\nsubscription.operators.coreos.com/metallb-operator-sub created\ntimeout 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\"\nNo resources found in metallb-system namespace.\nNo resources found in metallb-system namespace.\nmetallb-operator-controller-manager-699596c7b8-klfq4 \ 0/1 ContainerCreating 0 1s\noc wait pod -n metallb-system --for condition=Ready -l control-plane=controller-manager --timeout=500s\npod/metallb-operator-controller-manager-699596c7b8-klfq4 condition met\ntimeout 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\"\nmetallb-operator-webhook-server-6f5466444-dd94g \ 1/1 Running 0 40s\noc wait pod -n metallb-system --for condition=Ready -l component=webhook-server --timeout=500s\npod/metallb-operator-webhook-server-6f5466444-dd94g condition met\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/metallb-system/metallb/cr/deploy_operator.yaml\nmetallb.metallb.io/metallb created\ntimeout 500s bash -c \"while ! (oc get pod --no-headers=true -l component=speaker -n metallb-system | grep speaker); do sleep 10; done\"\nNo resources found in metallb-system namespace.\nspeaker-9hh4f 1/2 Running 0 10s\noc wait pod -n metallb-system -l component=speaker --for condition=Ready --timeout=500s\npod/speaker-9hh4f condition met\nbash scripts/gen-olm.sh\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' -z quay.io/openstack-k8s-operators/infra-operator-index:latest ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op\n+ OPERATOR_CHANNEL=alpha\n+ OPERATOR_SOURCE=infra-operator-index\n+ OPERATOR_SOURCE_NAMESPACE=openstack-operators\n+ echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op\nOPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op\n+ echo OPERATOR_CHANNEL alpha\nOPERATOR_CHANNEL alpha\n+ echo OPERATOR_SOURCE infra-operator-index\nOPERATOR_SOURCE infra-operator-index\n+ echo OPERATOR_SOURCE_NAMESPACE openstack-operators\nOPERATOR_SOURCE_NAMESPACE openstack-operators\n+ cat\n+ cat\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/infra/op\ncatalogsource.operators.coreos.com/infra-operator-index created\noperatorgroup.operators.coreos.com/openstack unchanged\nsubscription.operators.coreos.com/infra-operator created\nmkdir -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\nbash scripts/clone-operator-repo.sh\nCloning repo: git clone -b main https://github.com/openstack-k8s-operators/infra-operator.git infra-operator\nCloning into 'infra-operator'...\nRunning checkout: git checkout 038f0cf579da\nNote: switching to '038f0cf579da'.\n\nYou are in 'detached HEAD' state. You can look around, make experimental\nchanges and commit them, and you can discard any commits you make in this\nstate without impacting any branches by switching back to a branch.\n\nIf you want to create a new branch to retain commits you create, you may\ndo so (now or later) by using -c with the switch command. Example:\n\n \ git switch -c \n\nOr undo this operation with:\n\n git switch -\n\nTurn off this advice by setting config variable advice.detachedHead to false\n\nHEAD is now at 038f0cf Merge pull request #498 from stuggi/pin_baseimage\ncp /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\nbash scripts/gen-service-kustomize.sh\n+++ dirname scripts/gen-service-kustomize.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only\n++ set -e\n+ '[' -z keystone-kuttl-tests ']'\n+ '[' -z Memcached ']'\n+ '[' -z osp-secret ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']'\n+ '[' -n '' ']'\n+ REPLACEMENTS=\n+ IMAGE=unused\n+ IMAGE_PATH=containerImage\n+ STORAGE_REQUEST=10G\n+ INTERFACE_MTU=1500\n+ VLAN_START=20\n+ VLAN_STEP=1\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']'\n+ pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr\n~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ~/src/github.com/openstack-k8s-operators/install_yamls\n+ cat\n+ [[ Memcached == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ IFS=,\n+ read -ra IMAGES\n+ IFS=,\n+ read -ra IMAGE_PATHS\n+ '[' 1 '!=' 1 ']'\n+ (( i=0 ))\n+ (( i < 1 ))\n+ SPEC_PATH=containerImage\n+ SPEC_VALUE=unused\n+ '[' unused '!=' unused ']'\n+ (( i++ ))\n+ (( i < 1 ))\n+ '[' -n memcached ']'\n+ cat\n+ '[' Memcached == OpenStackControlPlane ']'\n+ '[' Memcached == Galera ']'\n+ '[' Memcached == NetConfig ']'\n+ '[' -n '' ']'\n+ [[ Memcached == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ [[ Memcached == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ '[' -n '' ']'\n+ kustomization_add_resources\n+ echo merge config dir\nmerge config dir\n++ find . -type f -name '*.yaml'\n++ grep -v kustomization\n+ yamls=./memcached_v1beta1_memcached.yaml\n+ for y in ${yamls[@]}\n+ kustomize edit add resource ./memcached_v1beta1_memcached.yaml\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\nmake wait\nmake[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nerror: the server doesn't have a resource type \"openstackversion\"\nbash scripts/operator-wait.sh\n+ TIMEOUT=500s\n+++ dirname scripts/operator-wait.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq ']'\n+ pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls\n+ timeout 500s bash -c 'until [ \"$(bash ./get-operator-status.sh)\" == \"Succeeded\" ]; do sleep 5; done'\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"infra-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ jq -e .status.availableReplicas\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z infra ']'\n+ '[' infra = rabbitmq-cluster ']'\n+ DEPL_NAME=infra-operator-controller-manager\n++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=1\n+ '[' 1 '!=' 1 ']'\n+ echo Succeeded\n+ exit 0\n+ rc=0\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\n+ exit 0\nmake[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nbash scripts/operator-deploy-resources.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr ']'\n+ NEXT_WAIT_TIME=0\n+ '[' 0 -eq 15 ']'\n+ oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/infra/cr\n+ oc apply -f -\nmemcached.memcached.openstack.org/memcached created\n+ '[' 0 -lt 15 ']'\nbash scripts/gen-olm.sh\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' -z quay.io/openstack-k8s-operators/rabbitmq-cluster-operator-index:latest ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op\n+ OPERATOR_CHANNEL=alpha\n+ OPERATOR_SOURCE=rabbitmq-cluster-operator-index\n+ OPERATOR_SOURCE_NAMESPACE=openstack-operators\n+ echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op\nOPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op\n+ echo OPERATOR_CHANNEL alpha\nOPERATOR_CHANNEL alpha\n+ echo OPERATOR_SOURCE rabbitmq-cluster-operator-index\nOPERATOR_SOURCE rabbitmq-cluster-operator-index\n+ echo OPERATOR_SOURCE_NAMESPACE openstack-operators\nOPERATOR_SOURCE_NAMESPACE openstack-operators\n+ cat\n+ cat\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/rabbitmq-cluster/op\ncatalogsource.operators.coreos.com/rabbitmq-cluster-operator-index created\noperatorgroup.operators.coreos.com/openstack unchanged\nsubscription.operators.coreos.com/rabbitmq-cluster-operator created\nmkdir -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\nbash -c \"CHECKOUT_FROM_OPENSTACK_REF=false scripts/clone-operator-repo.sh\"\nCloning repo: git clone -b patches https://github.com/openstack-k8s-operators/rabbitmq-cluster-operator.git rabbitmq-operator\nCloning into 'rabbitmq-operator'...\ncp /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\nbash scripts/gen-service-kustomize.sh\n+++ dirname scripts/gen-service-kustomize.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only\n++ set -e\n+ '[' -z keystone-kuttl-tests ']'\n+ '[' -z RabbitmqCluster ']'\n+ '[' -z osp-secret ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']'\n+ '[' -n '' ']'\n+ REPLACEMENTS=\n+ IMAGE=unused\n+ IMAGE_PATH=image\n+ STORAGE_REQUEST=10G\n+ INTERFACE_MTU=1500\n+ VLAN_START=20\n+ VLAN_STEP=1\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']'\n+ pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr\n~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ~/src/github.com/openstack-k8s-operators/install_yamls\n+ cat\n+ [[ RabbitmqCluster == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ IFS=,\n+ read -ra IMAGES\n+ IFS=,\n+ read -ra IMAGE_PATHS\n+ '[' 1 '!=' 1 ']'\n+ (( i=0 ))\n+ (( i < 1 ))\n+ SPEC_PATH=image\n+ SPEC_VALUE=unused\n+ '[' unused '!=' unused ']'\n+ (( i++ ))\n+ (( i < 1 ))\n+ '[' -n rabbitmq ']'\n+ cat\n+ '[' RabbitmqCluster == OpenStackControlPlane ']'\n+ '[' RabbitmqCluster == Galera ']'\n+ '[' RabbitmqCluster == NetConfig ']'\n+ '[' -n '' ']'\n+ [[ RabbitmqCluster == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ [[ RabbitmqCluster == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ '[' -n '' ']'\n+ kustomization_add_resources\n+ echo merge config dir\nmerge config dir\n++ find . -type f -name '*.yaml'\n++ grep -v kustomization\n+ yamls=./rabbitmq.yaml\n+ for y in ${yamls[@]}\n+ kustomize edit add resource ./rabbitmq.yaml\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\nmake wait\nmake[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nerror: the server doesn't have a resource type \"openstackversion\"\nbash scripts/operator-wait.sh\n+ TIMEOUT=500s\n+++ dirname scripts/operator-wait.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq ']'\n+ '[' rabbitmq = rabbitmq ']'\n+ OPERATOR_NAME=rabbitmq-cluster\n+ pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls\n+ timeout 500s bash -c 'until [ \"$(bash ./get-operator-status.sh)\" == \"Succeeded\" ]; do sleep 5; done'\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ jq -e .status.availableReplicas\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"rabbitmq-cluster-operator\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z rabbitmq-cluster ']'\n+ '[' rabbitmq-cluster = rabbitmq-cluster ']'\n+ DEPL_NAME=rabbitmq-cluster-operator\n++ oc get -n openstack-operators deployment rabbitmq-cluster-operator -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=1\n+ '[' 1 '!=' 1 ']'\n+ echo Succeeded\n+ exit 0\n+ rc=0\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\n+ exit 0\nmake[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nbash scripts/operator-deploy-resources.sh\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr ']'\n+ NEXT_WAIT_TIME=0\n+ '[' 0 -eq 15 ']'\n+ oc kustomize /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/rabbitmq/cr\n+ oc apply -f -\nrabbitmqcluster.rabbitmq.com/rabbitmq created\n+ '[' 0 -lt 15 ']'\nbash scripts/gen-olm.sh\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' -z 38.129.56.231:5001/openstack-k8s-operators/keystone-operator-index:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op ']'\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op ']'\n+ mkdir -p /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op\n+ OPERATOR_CHANNEL=alpha\n+ OPERATOR_SOURCE=keystone-operator-index\n+ OPERATOR_SOURCE_NAMESPACE=openstack-operators\n+ echo OPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op\nOPERATOR_DIR /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op\n+ echo OPERATOR_CHANNEL alpha\nOPERATOR_CHANNEL alpha\n+ echo OPERATOR_SOURCE keystone-operator-index\nOPERATOR_SOURCE keystone-operator-index\n+ echo OPERATOR_SOURCE_NAMESPACE openstack-operators\nOPERATOR_SOURCE_NAMESPACE openstack-operators\n+ cat\n+ cat\n+ cat\noc apply -f /home/zuul/ci-framework-data/artifacts/manifests/openstack-operators/keystone/op\ncatalogsource.operators.coreos.com/keystone-operator-index created\noperatorgroup.operators.coreos.com/openstack unchanged\nsubscription.operators.coreos.com/keystone-operator created\nmkdir -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\nbash scripts/clone-operator-repo.sh\nCloning repo: git clone /home/zuul/src/github.com/openstack-k8s-operators/keystone-operator keystone-operator\nCloning into 'keystone-operator'...\ndone.\ncp /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\nbash scripts/gen-service-kustomize.sh\n+++ dirname scripts/gen-service-kustomize.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ . /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts/common.sh --source-only\n++ set -e\n+ '[' -z keystone-kuttl-tests ']'\n+ '[' -z KeystoneAPI ']'\n+ '[' -z osp-secret ']'\n+ '[' -z /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ']'\n+ '[' -n '' ']'\n+ REPLACEMENTS=\n+ IMAGE=unused\n+ IMAGE_PATH=containerImage\n+ STORAGE_REQUEST=10G\n+ INTERFACE_MTU=1500\n+ VLAN_START=20\n+ VLAN_STEP=1\n+ '[' '!' -d /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ']'\n+ pushd /home/zuul/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr\n~/ci-framework-data/artifacts/manifests/keystone-kuttl-tests/keystone/cr ~/src/github.com/openstack-k8s-operators/install_yamls\n+ cat\n+ [[ KeystoneAPI == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ IFS=,\n+ read -ra IMAGES\n+ IFS=,\n+ read -ra IMAGE_PATHS\n+ '[' 1 '!=' 1 ']'\n+ (( i=0 ))\n+ (( i < 1 ))\n+ SPEC_PATH=containerImage\n+ SPEC_VALUE=unused\n+ '[' unused '!=' unused ']'\n+ (( i++ ))\n+ (( i < 1 ))\n+ '[' -n '' ']'\n+ '[' KeystoneAPI == OpenStackControlPlane ']'\n+ '[' KeystoneAPI == Galera ']'\n+ '[' KeystoneAPI == NetConfig ']'\n+ '[' -n '' ']'\n+ [[ KeystoneAPI == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ [[ KeystoneAPI == \\O\\p\\e\\n\\S\\t\\a\\c\\k\\C\\o\\n\\t\\r\\o\\l\\P\\l\\a\\n\\e ]]\n+ '[' -n '' ']'\n+ kustomization_add_resources\n+ echo merge config dir\nmerge config dir\n++ grep -v kustomization\n++ find . -type f -name '*.yaml'\n+ yamls=./keystone_v1beta1_keystoneapi.yaml\n+ for y in ${yamls[@]}\n+ kustomize edit add resource ./keystone_v1beta1_keystoneapi.yaml\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\nmake wait\nmake[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nerror: the server doesn't have a resource type \"openstackversion\"\nbash scripts/operator-wait.sh\n+ TIMEOUT=500s\n+++ dirname scripts/operator-wait.sh\n++ cd scripts\n++ pwd -P\n+ SCRIPTPATH=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq ']'\n+ pushd /home/zuul/src/github.com/openstack-k8s-operators/install_yamls/scripts\n~/src/github.com/openstack-k8s-operators/install_yamls/scripts ~/src/github.com/openstack-k8s-operators/install_yamls\n+ timeout 500s bash -c 'until [ \"$(bash ./get-operator-status.sh)\" == \"Succeeded\" ]; do sleep 5; done'\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\nError from server (NotFound): deployments.apps \"keystone-operator-controller-manager\" not found\n+ REPLICAS=\n+ '[' '' '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ jq -e .status.availableReplicas\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=null\n+ '[' null '!=' 1 ']'\n+ exit 1\n+ '[' -z openstack-operators ']'\n+ '[' -z keystone ']'\n+ '[' keystone = rabbitmq-cluster ']'\n+ DEPL_NAME=keystone-operator-controller-manager\n++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json\n++ jq -e .status.availableReplicas\n+ REPLICAS=1\n+ '[' 1 '!=' 1 ']'\n+ echo Succeeded\n+ exit 0\n+ rc=0\n+ popd\n~/src/github.com/openstack-k8s-operators/install_yamls\n+ exit 0\nmake[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nmake keystone_kuttl_run\nmake[1]: Entering directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nerror: the server doesn't have a resource type \"openstackversion\"\nKEYSTONE_KUTTL_DIR=/home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/test/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/test/kuttl/tests --namespace keystone-kuttl-tests \n2025/11/25 08:47:20 kutt-test config testdirs is overridden with args: [ /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/test/kuttl/tests ]\n=== RUN kuttl\n harness.go:463: starting setup\n harness.go:255: running tests using configured kubeconfig.\n harness.go:278: Successful connection to cluster at: https://api.crc.testing:6443\n harness.go:363: running tests\n harness.go:75: going to run test suite with timeout of 800 seconds for each step\n harness.go:375: testsuite: /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/test/kuttl/tests has 5 tests\n=== RUN kuttl/harness\n=== RUN kuttl/harness/change_keystone_config\n=== PAUSE kuttl/harness/change_keystone_config\n=== RUN kuttl/harness/fernet_rotation\n=== PAUSE kuttl/harness/fernet_rotation\n=== RUN kuttl/harness/keystone_resources\n=== PAUSE kuttl/harness/keystone_resources\n=== RUN kuttl/harness/keystone_scale\n=== PAUSE kuttl/harness/keystone_scale\n=== RUN kuttl/harness/keystone_tls\n=== PAUSE kuttl/harness/keystone_tls\n=== CONT kuttl/harness/change_keystone_config\n logger.go:42: 08:47:20 | change_keystone_config | Skipping creation of user-supplied namespace: keystone-kuttl-tests\n logger.go:42: 08:47:20 | change_keystone_config/0-deploy_keystone | starting test step 0-deploy_keystone\n logger.go:42: 08:47:20 | change_keystone_config/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created\n logger.go:42: 08:47:20 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:20 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:21 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:23 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:24 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:25 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47:26 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:26 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:27 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:28 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:30 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:31 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:32 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47:33 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:33 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:34 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:35 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:37 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:38 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47:39 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:39 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:40 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:41 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:42 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:44 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47:45 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:45 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:46 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:47 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:48 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:50 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:51 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:52 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47:56 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:47: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:06 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:13 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:20 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:26 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:31 | change_keystone_config/0-deploy_keystone | test step completed 0-deploy_keystone\n \ logger.go:42: 08:48:31 | change_keystone_config/1- | starting test step 1-\n \ logger.go:42: 08:48:31 | change_keystone_config/1- | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh]\n logger.go:42: 08:48:31 | change_keystone_config/1- | test step completed 1-\n logger.go:42: 08:48:31 | change_keystone_config/2-change_keystone_config | starting test step 2-change_keystone_config\n logger.go:42: 08:48:31 | 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\"}]'\n ]\n logger.go:42: 08:48:32 | change_keystone_config/2-change_keystone_config | keystoneapi.keystone.openstack.org/keystone patched\n logger.go:42: 08:48:32 | change_keystone_config/2-change_keystone_config | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh --reverse]\n logger.go:42: 08:48:33 | change_keystone_config/2-change_keystone_config | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh --reverse]\n logger.go:42: 08:48:33 | change_keystone_config/2-change_keystone_config | error: arguments in resource/name form may not have more than one slash\n logger.go:42: 08:48:33 | change_keystone_config/2-change_keystone_config | test step completed 2-change_keystone_config\n logger.go:42: 08:48:33 | change_keystone_config/3-cleanup-keystone | starting test step 3-cleanup-keystone\n logger.go:42: 08:48:37 | change_keystone_config/3-cleanup-keystone | test step completed 3-cleanup-keystone\n logger.go:42: 08:48:37 | change_keystone_config | skipping kubernetes event logging\n=== CONT kuttl/harness/keystone_scale\n logger.go:42: 08:48:37 | keystone_scale | Skipping creation of user-supplied namespace: keystone-kuttl-tests\n \ logger.go:42: 08:48:37 | keystone_scale/0-deploy_keystone | starting test step 0-deploy_keystone\n logger.go:42: 08:48:37 | keystone_scale/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:38 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:39 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:40 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:41 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48:42 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:42 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:44 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:45 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:46 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48:47 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:47 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:48 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:49 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:53 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:48:59 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49:05 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49:12 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49:18 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49:24 | keystone_scale/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:49:28 | keystone_scale/0-deploy_keystone | test step completed 0-deploy_keystone\n logger.go:42: 08:49:28 | keystone_scale/1-scale-keystoneapi | starting test step 1-scale-keystoneapi\n \ logger.go:42: 08:49:28 | 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}]'\n ]\n logger.go:42: 08:49:28 | keystone_scale/1-scale-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched\n logger.go:42: 08:50:01 | keystone_scale/1-scale-keystoneapi | test step completed 1-scale-keystoneapi\n logger.go:42: 08:50:01 | keystone_scale/2-scale-down-keystoneapi | starting test step 2-scale-down-keystoneapi\n logger.go:42: 08:50:01 | 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}]'\n ]\n \ logger.go:42: 08:50:01 | keystone_scale/2-scale-down-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched\n logger.go:42: 08:50:02 | keystone_scale/2-scale-down-keystoneapi | test step completed 2-scale-down-keystoneapi\n logger.go:42: 08:50:02 | keystone_scale/3-scale-down-zero-keystoneapi | starting test step 3-scale-down-zero-keystoneapi\n logger.go:42: 08:50:02 | 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}]'\n ]\n logger.go:42: 08:50:02 | keystone_scale/3-scale-down-zero-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched\n logger.go:42: 08:50:06 | keystone_scale/3-scale-down-zero-keystoneapi | test step completed 3-scale-down-zero-keystoneapi\n \ logger.go:42: 08:50:06 | keystone_scale/4-cleanup-keystone | starting test step 4-cleanup-keystone\n logger.go:42: 08:50:07 | keystone_scale/4-cleanup-keystone | test step completed 4-cleanup-keystone\n logger.go:42: 08:50:07 | keystone_scale | skipping kubernetes event logging\n=== CONT kuttl/harness/keystone_tls\n logger.go:42: 08:50:07 | keystone_tls | Skipping creation of user-supplied namespace: keystone-kuttl-tests\n \ logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | starting test step 0-tls_ca_bundle\n \ logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********le created\n logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********vc created\n logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********vc created\n logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | test step completed 0-tls_ca_bundle\n logger.go:42: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | starting test step 1-keystoneapi_tls_deploy\n logger.go:42: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | KeystoneAPI:keystone-kuttl-tests/keystone created\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:08 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:09 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:10 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50:11 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:11 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:13 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:14 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:15 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:16 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:17 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50:18 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:18 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:20 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:21 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:22 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex\n logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:25 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:32 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:38 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:44 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50:58 | 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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:50: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"https:\\/\\/keystone-internal.$NAMESPACE.*:https:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n ]\n \ logger.go:42: 08:51:01 | keystone_tls/1-keystoneapi_tls_deploy | test step completed 1-keystoneapi_tls_deploy\n logger.go:42: 08:51:01 | keystone_tls/2-cleanup-keystone | starting test step 2-cleanup-keystone\n logger.go:42: 08:51:05 | keystone_tls/2-cleanup-keystone | test step completed 2-cleanup-keystone\n logger.go:42: 08:51:05 | keystone_tls | skipping kubernetes event logging\n=== CONT kuttl/harness/keystone_resources\n \ logger.go:42: 08:51:05 | keystone_resources | Skipping creation of user-supplied namespace: keystone-kuttl-tests\n logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | starting test step 0-deploy_keystone\n logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created\n logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:06 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:07 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:09 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:10 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51:11 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:11 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:12 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:13 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:15 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51:16 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:16 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:17 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:28 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:34 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:39 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:46 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:51 | keystone_resources/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:51:55 | keystone_resources/0-deploy_keystone | test step completed 0-deploy_keystone\n \ logger.go:42: 08:51:55 | keystone_resources/1-deploy-keystoneservice | starting test step 1-deploy-keystoneservice\n logger.go:42: 08:51:55 | keystone_resources/1-deploy-keystoneservice | KeystoneService:keystone-kuttl-tests/placement created\n logger.go:42: 08:51:57 | keystone_resources/1-deploy-keystoneservice | test step completed 1-deploy-keystoneservice\n \ logger.go:42: 08:51:57 | keystone_resources/2-deploy-keystoneendpoint | starting test step 2-deploy-keystoneendpoint\n logger.go:42: 08:51:57 | keystone_resources/2-deploy-keystoneendpoint | KeystoneEndpoint:keystone-kuttl-tests/placement created\n logger.go:42: 08:52:08 | keystone_resources/2-deploy-keystoneendpoint | test step completed 2-deploy-keystoneendpoint\n \ logger.go:42: 08:52:08 | keystone_resources/3-cleanup-keystoneendpoint | starting test step 3-cleanup-keystoneendpoint\n logger.go:42: 08:52:09 | keystone_resources/3-cleanup-keystoneendpoint | test step completed 3-cleanup-keystoneendpoint\n logger.go:42: 08:52:09 | keystone_resources/4-cleanup-keystoneservice | starting test step 4-cleanup-keystoneservice\n logger.go:42: 08:52:11 | keystone_resources/4-cleanup-keystoneservice | test step completed 4-cleanup-keystoneservice\n logger.go:42: 08:52:11 | keystone_resources/5-cleanup-keystone | starting test step 5-cleanup-keystone\n logger.go:42: 08:52:15 | keystone_resources/5-cleanup-keystone | test step completed 5-cleanup-keystone\n logger.go:42: 08:52:15 | keystone_resources | skipping kubernetes event logging\n=== CONT kuttl/harness/fernet_rotation\n logger.go:42: 08:52:15 | fernet_rotation | Skipping creation of user-supplied namespace: keystone-kuttl-tests\n \ logger.go:42: 08:52:15 | fernet_rotation/0-deploy_keystone | starting test step 0-deploy_keystone\n logger.go:42: 08:52:15 | fernet_rotation/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:16 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:17 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:18 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:19 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:20 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:22 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:23 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52:24 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:24 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:25 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:26 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:27 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:30 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:36 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:42 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:48 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:53 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:52:59 | fernet_rotation/0-deploy_keystone | running command: [sh -c # the actual addresses of the apiEndpoints are platform specific, so we can't rely on\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53: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\n # kuttl asserts to check them. This short script gathers the addresses and checks that\n \ # the three endpoints are defined and their addresses follow the default pattern\n template='{{.status.apiEndpoints.internal}}{{\":\"}}{{.status.apiEndpoints.public}}{{\"\\n\"}}'\n \ regex=\"http:\\/\\/keystone-internal.$NAMESPACE.*:http:\\/\\/keystone-public.$NAMESPACE.*\"\n \ apiEndpoints=$(oc get -n $NAMESPACE KeystoneAPI keystone -o go-template=\"$template\")\n \ matches=$(echo \"$apiEndpoints\" | sed -e \"s?$regex??\")\n if [ -z \"$matches\" ]; then\n exit 0\n else\n echo \"Endpoints URLS: $apiEndpoints do not match regex\"\n exit 1\n fi\n \n \ # when using image digests the containerImage URLs are SHA's so we verify them with a script\n tupleTemplate='{{ range (index .spec.template.spec.containers 0).env }}{{ .name }}{{ \"#\" }}{{ .value}}{{\"\\n\"}}{{ end }}'\n imageTuples=$(oc get -n openstack-operators deployment keystone-operator-controller-manager -o go-template=\"$tupleTemplate\")\n \ # format of imageTuple is: RELATED_IMAGE_KEYSTONE_# separated by newlines\n for ITEM in $(echo $imageTuples); do\n # it is an image\n if echo $ITEM | grep 'RELATED_IMAGE' &> /dev/null; then\n \ NAME=$(echo $ITEM | sed -e 's|^RELATED_IMAGE_KEYSTONE_\\([^_]*\\)_.*|\\1|')\n \ IMG_FROM_ENV=$(echo $ITEM | sed -e 's|^.*#\\(.*\\)|\\1|')\n template='{{.spec.containerImage}}'\n \ case $NAME in\n API)\n SERVICE_IMAGE=$(oc get -n $NAMESPACE keystoneapi keystone -o go-template=\"$template\")\n ;;\n \ esac\n if [ \"$SERVICE_IMAGE\" != \"$IMG_FROM_ENV\" ]; then\n \ echo \"$NAME image does not equal $VALUE\"\n exit 1\n \ fi\n fi\n done\n ]\n logger.go:42: 08:53:06 | fernet_rotation/0-deploy_keystone | test step completed 0-deploy_keystone\n logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | starting test step 1-deploy_openstackclient\n \ logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | Pod:keystone-kuttl-tests/openstackclient created\n logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | running command: [sh -c ../../common/scripts/create_test_token.sh]\n logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | + oc wait --for=condition=ready pod openstackclient --timeout=30s -n keystone-kuttl-tests\n logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | pod/openstackclient condition met\n \ logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | + alias 'openstack=oc exec -tn keystone-kuttl-tests openstackclient -- openstack'\n logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | ++ oc exec -tn keystone-kuttl-tests openstackclient -- openstack token issue -f value -c id\n logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + export OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA\n \ logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA\n \ logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + echo gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA\n \ logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | test step completed 1-deploy_openstackclient\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | starting test step 2-rotate_keys\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | Secret:ke**********ne updated\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | running command: [sh -c ../../common/scripts/validate_test_token.sh]\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + seconds=1\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + '[' 1 -le 30 ']'\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | ++ oc get secret keystone -n keystone-kuttl-tests -o 'jsonpath={.metadata.annotations['\\''keystone\\.openstack\\.org/rotatedat'\\'']}'\n \ logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + rotatedat=2025-11-25T08:53:20Z\n \ logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + '[' 2025-11-25T08:53:20Z '!=' 2009-11-10T23:00:00Z ']'\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + break\n logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + sleep 60\n logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | ++ cat /tmp/temporary_test_token\n \ logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | + export OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA\n \ logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | + OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA\n \ logger.go:42: 08:54:20 | 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=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA openstack endpoint list\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | ++ true\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + output='The service catalog is empty.\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | command terminated with exit code 1'\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + echo 'The service catalog is empty.\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | command terminated with exit code 1'\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + grep -qi 'Could not recognize Fernet token'\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + exit 0\n logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | test step completed 2-rotate_keys\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | starting test step 3-rotate_keys_until_invalidate\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | running command: [sh -c ../../common/scripts/rotate_token.sh]\n \ logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + TMP_SECRET_FILE=/tmp/keystone-secret.yaml\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5}\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 1...'\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 1...\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + cat\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml\n logger.go:42: 08:54:23 | 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.\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured\n logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Rotation 1 completed successfully.'\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 1 completed successfully.\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5}\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Starting rotation 2...'\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 2...\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + cat\n logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | error: error when retrieving current configuration of:\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Resource: \"/v1, Resource=secrets\", GroupVersionKind: \"/v1, Kind=Secret\"\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Name: \"keystone\", Namespace: \"keystone-kuttl-tests\"\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | from server for: \"/tmp/keystone-secret.yaml\": Get \"https://api.crc.testing:6443/api/v1/namespaces/keystone-kuttl-tests/secrets/keystone\": dial tcp 38.102.83.222:6443: connect: connection refused\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + echo 'Failed to apply the secret!'\n \ logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Failed to apply the secret!\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + rm -f /tmp/keystone-secret.yaml\n logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + exit 1\n case.go:396: failed in step 3-rotate_keys_until_invalidate\n case.go:398: command \"../../common/scripts/rotate_token.sh\" failed, exit status 1\n logger.go:42: 08:56:04 | fernet_rotation | skipping kubernetes event logging\n step.go:213: Delete \"https://api.crc.testing:6443/api/v1/namespaces/keystone-kuttl-tests/pods/openstackclient\": dial tcp 38.102.83.222:6443: connect: connection refused\n step.go:213: Delete \"https://api.crc.testing:6443/apis/keystone.openstack.org/v1beta1/namespaces/keystone-kuttl-tests/keystoneapis/keystone\": dial tcp 38.102.83.222:6443: connect: connection refused\n=== NAME kuttl\n harness.go:406: run tests finished\n harness.go:514: cleaning up\n harness.go:571: removing temp folder: \"\"\n--- FAIL: kuttl (523.62s)\n --- FAIL: kuttl/harness (0.00s)\n \ --- PASS: kuttl/harness/change_keystone_config (77.48s)\n --- PASS: kuttl/harness/keystone_scale (89.11s)\n --- PASS: kuttl/harness/keystone_tls (58.27s)\n --- PASS: kuttl/harness/keystone_resources (70.58s)\n --- FAIL: kuttl/harness/fernet_rotation (228.18s)\nFAIL\nmake[1]: *** [Makefile:1807: keystone_kuttl_run] Error 1\nmake[1]: Leaving directory '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls'\nmake: *** [Makefile:1816: keystone_kuttl] Error 2\n" stdout_lines: - ~/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=12**********78 -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=12**********78 -ss -e "show databases like 'nova_%';" | xargs -I '{}' oc rsh openstack-galera-0 mysql -u root --password=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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=12**********78 -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 231c653930d1' - 'Note: switching to ''231c653930d1''.' - '' - 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 231c653 Merge pull request #379 from dciabrin/pwd-wsrep-notify' - 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 '' ']' - + REPLACEMENTS= - + IMAGE=unused - + IMAGE_PATH=containerImage - + STORAGE_REQUEST=10G - + INTERFACE_MTU=1500 - + VLAN_START=20 - + VLAN_STEP=1 - + '[' '!' -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 ]] - + '[' -n '' ']' - + 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 - ++ jq -e .status.availableReplicas - ++ oc get -n openstack-operators deployment mariadb-operator-controller-manager -o json - '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-699596c7b8-klfq4 0/1 ContainerCreating 0 1s - oc wait pod -n metallb-system --for condition=Ready -l control-plane=controller-manager --timeout=500s - pod/metallb-operator-controller-manager-699596c7b8-klfq4 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-6f5466444-dd94g 1/1 Running 0 40s - oc wait pod -n metallb-system --for condition=Ready -l component=webhook-server --timeout=500s - pod/metallb-operator-webhook-server-6f5466444-dd94g 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-9hh4f 1/2 Running 0 10s - oc wait pod -n metallb-system -l component=speaker --for condition=Ready --timeout=500s - pod/speaker-9hh4f 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 038f0cf579da' - 'Note: switching to ''038f0cf579da''.' - '' - 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 038f0cf Merge pull request #498 from stuggi/pin_baseimage' - 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 '' ']' - + REPLACEMENTS= - + IMAGE=unused - + IMAGE_PATH=containerImage - + STORAGE_REQUEST=10G - + INTERFACE_MTU=1500 - + VLAN_START=20 - + VLAN_STEP=1 - + '[' '!' -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 ]] - + '[' -n '' ']' - + 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 - '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 - ++ jq -e .status.availableReplicas - ++ oc get -n openstack-operators deployment infra-operator-controller-manager -o json - + 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 '' ']' - + REPLACEMENTS= - + IMAGE=unused - + IMAGE_PATH=image - + STORAGE_REQUEST=10G - + INTERFACE_MTU=1500 - + VLAN_START=20 - + VLAN_STEP=1 - + '[' '!' -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 ]] - + '[' -n '' ']' - + 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 - ++ 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 - '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 - + 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.129.56.231:5001/openstack-k8s-operators/keystone-operator-index:99ecaf09fca6d0f5b4cbc5282cec7fd7c6b6579a ']' - + '[' -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 '' ']' - + REPLACEMENTS= - + IMAGE=unused - + IMAGE_PATH=containerImage - + STORAGE_REQUEST=10G - + INTERFACE_MTU=1500 - + VLAN_START=20 - + VLAN_STEP=1 - + '[' '!' -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 ]] - + '[' -n '' ']' - + kustomization_add_resources - + echo merge config dir - merge config dir - ++ grep -v kustomization - ++ find . -type f -name '*.yaml' - + 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 - ++ jq -e .status.availableReplicas - ++ oc get -n openstack-operators deployment keystone-operator-controller-manager -o json - + 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/test/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/test/kuttl/tests --namespace keystone-kuttl-tests ' - '2025/11/25 08:47:20 kutt-test config testdirs is overridden with args: [ /home/zuul/ci-framework-data/artifacts/manifests/operator/keystone-operator/test/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/test/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: 08:47:20 | change_keystone_config | Skipping creation of user-supplied namespace: keystone-kuttl-tests' - ' logger.go:42: 08:47:20 | change_keystone_config/0-deploy_keystone | starting test step 0-deploy_keystone' - ' logger.go:42: 08:47:20 | change_keystone_config/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created' - ' logger.go:42: 08:47:20 | 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 0).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: 08:47:20 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:21 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:23 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:24 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:25 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47:26 | 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 0).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: 08:47:26 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:27 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:28 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:30 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:31 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:32 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47:33 | 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 0).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: 08:47:33 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:34 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:35 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:37 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:38 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47:39 | 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 0).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: 08:47:39 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:40 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:41 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:42 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:44 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47:45 | 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 0).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: 08:47:45 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:46 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:47 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:48 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:50 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:51 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47:52 | change_keystone_config/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:47: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 0).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: 08:47: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 0).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: 08:47: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 0).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: 08:47:56 | 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 0).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: 08:47: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 0).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: 08:47: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:06 | 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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:13 | 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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:20 | 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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:26 | 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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:31 | change_keystone_config/0-deploy_keystone | test step completed 0-deploy_keystone' - ' logger.go:42: 08:48:31 | change_keystone_config/1- | starting test step 1-' - ' logger.go:42: 08:48:31 | change_keystone_config/1- | running command: [sh -c $KEYSTONE_KUTTL_DIR/../common/scripts/check_debug_in_keystone_pod_logs.sh]' - ' logger.go:42: 08:48:31 | change_keystone_config/1- | test step completed 1-' - ' logger.go:42: 08:48:31 | change_keystone_config/2-change_keystone_config | starting test step 2-change_keystone_config' - ' logger.go:42: 08:48:31 | 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: 08:48:32 | change_keystone_config/2-change_keystone_config | keystoneapi.keystone.openstack.org/keystone patched' - ' logger.go:42: 08:48:32 | 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: 08:48:33 | 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: 08:48:33 | change_keystone_config/2-change_keystone_config | error: arguments in resource/name form may not have more than one slash' - ' logger.go:42: 08:48:33 | change_keystone_config/2-change_keystone_config | test step completed 2-change_keystone_config' - ' logger.go:42: 08:48:33 | change_keystone_config/3-cleanup-keystone | starting test step 3-cleanup-keystone' - ' logger.go:42: 08:48:37 | change_keystone_config/3-cleanup-keystone | test step completed 3-cleanup-keystone' - ' logger.go:42: 08:48:37 | change_keystone_config | skipping kubernetes event logging' - === CONT kuttl/harness/keystone_scale - ' logger.go:42: 08:48:37 | keystone_scale | Skipping creation of user-supplied namespace: keystone-kuttl-tests' - ' logger.go:42: 08:48:37 | keystone_scale/0-deploy_keystone | starting test step 0-deploy_keystone' - ' logger.go:42: 08:48:37 | keystone_scale/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created' - ' logger.go:42: 08:48: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 0).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: 08:48:38 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:39 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:40 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:41 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48:42 | 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 0).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: 08:48:42 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:44 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:45 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:46 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48:47 | 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 0).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: 08:48:47 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:48 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48:49 | keystone_scale/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:48: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 0).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: 08:48: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 0).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: 08:48:53 | 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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48: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 0).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: 08:48:59 | 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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49:05 | 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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49:12 | 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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49:18 | 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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49:24 | 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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49: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 0).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: 08:49:28 | keystone_scale/0-deploy_keystone | test step completed 0-deploy_keystone' - ' logger.go:42: 08:49:28 | keystone_scale/1-scale-keystoneapi | starting test step 1-scale-keystoneapi' - ' logger.go:42: 08:49:28 | 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: 08:49:28 | keystone_scale/1-scale-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched' - ' logger.go:42: 08:50:01 | keystone_scale/1-scale-keystoneapi | test step completed 1-scale-keystoneapi' - ' logger.go:42: 08:50:01 | keystone_scale/2-scale-down-keystoneapi | starting test step 2-scale-down-keystoneapi' - ' logger.go:42: 08:50:01 | 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: 08:50:01 | keystone_scale/2-scale-down-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched' - ' logger.go:42: 08:50:02 | keystone_scale/2-scale-down-keystoneapi | test step completed 2-scale-down-keystoneapi' - ' logger.go:42: 08:50:02 | keystone_scale/3-scale-down-zero-keystoneapi | starting test step 3-scale-down-zero-keystoneapi' - ' logger.go:42: 08:50:02 | 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: 08:50:02 | keystone_scale/3-scale-down-zero-keystoneapi | keystoneapi.keystone.openstack.org/keystone patched' - ' logger.go:42: 08:50:06 | keystone_scale/3-scale-down-zero-keystoneapi | test step completed 3-scale-down-zero-keystoneapi' - ' logger.go:42: 08:50:06 | keystone_scale/4-cleanup-keystone | starting test step 4-cleanup-keystone' - ' logger.go:42: 08:50:07 | keystone_scale/4-cleanup-keystone | test step completed 4-cleanup-keystone' - ' logger.go:42: 08:50:07 | keystone_scale | skipping kubernetes event logging' - === CONT kuttl/harness/keystone_tls - ' logger.go:42: 08:50:07 | keystone_tls | Skipping creation of user-supplied namespace: keystone-kuttl-tests' - ' logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | starting test step 0-tls_ca_bundle' - ' logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********le created' - ' logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********vc created' - ' logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | Secret:ke**********vc created' - ' logger.go:42: 08:50:07 | keystone_tls/0-tls_ca_bundle | test step completed 0-tls_ca_bundle' - ' logger.go:42: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | starting test step 1-keystoneapi_tls_deploy' - ' logger.go:42: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | KeystoneAPI:keystone-kuttl-tests/keystone created' - ' logger.go:42: 08:50: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: 08:50:07 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:08 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:09 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:10 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50:11 | 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: 08:50:11 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:13 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:14 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:15 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:16 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:17 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50:18 | 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: 08:50:18 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:20 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:21 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50:22 | keystone_tls/1-keystoneapi_tls_deploy | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:50: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: 08:50: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: 08:50:25 | 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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50:32 | 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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50:38 | 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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50:44 | 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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50: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: 08:50:58 | 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: 08:50: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: 08:51: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: 08:51:01 | keystone_tls/1-keystoneapi_tls_deploy | test step completed 1-keystoneapi_tls_deploy' - ' logger.go:42: 08:51:01 | keystone_tls/2-cleanup-keystone | starting test step 2-cleanup-keystone' - ' logger.go:42: 08:51:05 | keystone_tls/2-cleanup-keystone | test step completed 2-cleanup-keystone' - ' logger.go:42: 08:51:05 | keystone_tls | skipping kubernetes event logging' - === CONT kuttl/harness/keystone_resources - ' logger.go:42: 08:51:05 | keystone_resources | Skipping creation of user-supplied namespace: keystone-kuttl-tests' - ' logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | starting test step 0-deploy_keystone' - ' logger.go:42: 08:51:05 | keystone_resources/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created' - ' logger.go:42: 08:51:05 | 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 0).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: 08:51:05 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:06 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:07 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:09 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:10 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51:11 | 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 0).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: 08:51:11 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:12 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:13 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:15 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51:16 | 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 0).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: 08:51:16 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51:17 | keystone_resources/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:28 | 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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:34 | 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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:39 | 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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:46 | 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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:51 | 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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51: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 0).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: 08:51:55 | keystone_resources/0-deploy_keystone | test step completed 0-deploy_keystone' - ' logger.go:42: 08:51:55 | keystone_resources/1-deploy-keystoneservice | starting test step 1-deploy-keystoneservice' - ' logger.go:42: 08:51:55 | keystone_resources/1-deploy-keystoneservice | KeystoneService:keystone-kuttl-tests/placement created' - ' logger.go:42: 08:51:57 | keystone_resources/1-deploy-keystoneservice | test step completed 1-deploy-keystoneservice' - ' logger.go:42: 08:51:57 | keystone_resources/2-deploy-keystoneendpoint | starting test step 2-deploy-keystoneendpoint' - ' logger.go:42: 08:51:57 | keystone_resources/2-deploy-keystoneendpoint | KeystoneEndpoint:keystone-kuttl-tests/placement created' - ' logger.go:42: 08:52:08 | keystone_resources/2-deploy-keystoneendpoint | test step completed 2-deploy-keystoneendpoint' - ' logger.go:42: 08:52:08 | keystone_resources/3-cleanup-keystoneendpoint | starting test step 3-cleanup-keystoneendpoint' - ' logger.go:42: 08:52:09 | keystone_resources/3-cleanup-keystoneendpoint | test step completed 3-cleanup-keystoneendpoint' - ' logger.go:42: 08:52:09 | keystone_resources/4-cleanup-keystoneservice | starting test step 4-cleanup-keystoneservice' - ' logger.go:42: 08:52:11 | keystone_resources/4-cleanup-keystoneservice | test step completed 4-cleanup-keystoneservice' - ' logger.go:42: 08:52:11 | keystone_resources/5-cleanup-keystone | starting test step 5-cleanup-keystone' - ' logger.go:42: 08:52:15 | keystone_resources/5-cleanup-keystone | test step completed 5-cleanup-keystone' - ' logger.go:42: 08:52:15 | keystone_resources | skipping kubernetes event logging' - === CONT kuttl/harness/fernet_rotation - ' logger.go:42: 08:52:15 | fernet_rotation | Skipping creation of user-supplied namespace: keystone-kuttl-tests' - ' logger.go:42: 08:52:15 | fernet_rotation/0-deploy_keystone | starting test step 0-deploy_keystone' - ' logger.go:42: 08:52:15 | fernet_rotation/0-deploy_keystone | KeystoneAPI:keystone-kuttl-tests/keystone created' - ' logger.go:42: 08:52: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 0).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: 08:52:16 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:17 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:18 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:19 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:20 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:22 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:23 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52:24 | 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 0).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: 08:52:24 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:25 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:26 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:27 | fernet_rotation/0-deploy_keystone | Endpoints URLS: : do not match regex' - ' logger.go:42: 08:52: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 0).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: 08:52:30 | 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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52:36 | 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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52:42 | 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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52:48 | 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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52:53 | 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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52: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 0).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: 08:52:59 | 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 0).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: 08:53: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 0).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: 08:53: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 0).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: 08:53: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 0).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: 08:53: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 0).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: 08:53: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 0).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: 08:53: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 0).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: 08:53:06 | fernet_rotation/0-deploy_keystone | test step completed 0-deploy_keystone' - ' logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | starting test step 1-deploy_openstackclient' - ' logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | Pod:keystone-kuttl-tests/openstackclient created' - ' logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | running command: [sh -c ../../common/scripts/create_test_token.sh]' - ' logger.go:42: 08:53:06 | fernet_rotation/1-deploy_openstackclient | + oc wait --for=condition=ready pod openstackclient --timeout=30s -n keystone-kuttl-tests' - ' logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | pod/openstackclient condition met' - ' logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | + alias ''openstack=oc exec -tn keystone-kuttl-tests openstackclient -- openstack''' - ' logger.go:42: 08:53:15 | fernet_rotation/1-deploy_openstackclient | ++ oc exec -tn keystone-kuttl-tests openstackclient -- openstack token issue -f value -c id' - ' logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + export OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA' - ' logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA' - ' logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | + echo gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA' - ' logger.go:42: 08:53:20 | fernet_rotation/1-deploy_openstackclient | test step completed 1-deploy_openstackclient' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | starting test step 2-rotate_keys' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | Secret:ke**********ne updated' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | running command: [sh -c ../../common/scripts/validate_test_token.sh]' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + seconds=1' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + ''['' 1 -le 30 '']''' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | ++ oc get secret keystone -n keystone-kuttl-tests -o ''jsonpath={.metadata.annotations[''\''''keystone\.openstack\.org/rotatedat''\'''']}''' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + rotatedat=2025-11-25T08:53:20Z' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + ''['' 2025-11-25T08:53:20Z ''!='' 2009-11-10T23:00:00Z '']''' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + break' - ' logger.go:42: 08:53:20 | fernet_rotation/2-rotate_keys | + sleep 60' - ' logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | ++ cat /tmp/temporary_test_token' - ' logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | + export OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA' - ' logger.go:42: 08:54:20 | fernet_rotation/2-rotate_keys | + OS_TOKEN=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA' - ' logger.go:42: 08:54:20 | 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=gAAAAABpJW5_hTETfXM49aDQcUL5mOp6MPPVOxw4qJ9hF88KNrFonunIaZbvVEzrur8VnQXYK1tl60jot34Si4-JRO4SRKVl8kFf1-wAyunXTMw0gT8dus8gtWX1cF-q2_LQpWfgdeycR0mDAQfS40HpYk6TiyTbOrY25hrPqkCCeuPgbLKW3MA openstack endpoint list' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | ++ true' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + output=''The service catalog is empty.' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | command terminated with exit code 1''' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + echo ''The service catalog is empty.' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | command terminated with exit code 1''' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + grep -qi ''Could not recognize Fernet token''' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | + exit 0' - ' logger.go:42: 08:54:23 | fernet_rotation/2-rotate_keys | test step completed 2-rotate_keys' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | starting test step 3-rotate_keys_until_invalidate' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | running command: [sh -c ../../common/scripts/rotate_token.sh]' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + TMP_SECRET_FILE=/tmp/keystone-secret.yaml' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5}' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + echo ''Starting rotation 1...''' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 1...' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + cat' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml' - ' logger.go:42: 08:54:23 | 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: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | secret/keystone configured' - ' logger.go:42: 08:54:23 | fernet_rotation/3-rotate_keys_until_invalidate | + sleep 100' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + echo ''Rotation 1 completed successfully.''' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | Rotation 1 completed successfully.' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + for rotation in {1..5}' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + echo ''Starting rotation 2...''' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | Starting rotation 2...' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + generate_secret_yaml' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + cat' - ' logger.go:42: 08:56:03 | fernet_rotation/3-rotate_keys_until_invalidate | + oc apply -f /tmp/keystone-secret.yaml' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | error: error when retrieving current configuration of:' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Resource: "/v1, Resource=secrets", GroupVersionKind: "/v1, Kind=Secret"' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Name: "keystone", Namespace: "keystone-kuttl-tests"' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | from server for: "/tmp/keystone-secret.yaml": Get "https://api.crc.testing:6443/api/v1/namespaces/keystone-kuttl-tests/secrets/keystone": dial tcp 38.102.83.222:6443: connect: connection refused' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + echo ''Failed to apply the secret!''' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | Failed to apply the secret!' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + rm -f /tmp/keystone-secret.yaml' - ' logger.go:42: 08:56:04 | fernet_rotation/3-rotate_keys_until_invalidate | + exit 1' - ' case.go:396: failed in step 3-rotate_keys_until_invalidate' - ' case.go:398: command "../../common/scripts/rotate_token.sh" failed, exit status 1' - ' logger.go:42: 08:56:04 | fernet_rotation | skipping kubernetes event logging' - ' step.go:213: Delete "https://api.crc.testing:6443/api/v1/namespaces/keystone-kuttl-tests/pods/openstackclient": dial tcp 38.102.83.222:6443: connect: connection refused' - ' step.go:213: Delete "https://api.crc.testing:6443/apis/keystone.openstack.org/v1beta1/namespaces/keystone-kuttl-tests/keystoneapis/keystone": dial tcp 38.102.83.222:6443: connect: connection refused' - === NAME kuttl - ' harness.go:406: run tests finished' - ' harness.go:514: cleaning up' - ' harness.go:571: removing temp folder: ""' - '--- FAIL: kuttl (523.62s)' - ' --- FAIL: kuttl/harness (0.00s)' - ' --- PASS: kuttl/harness/change_keystone_config (77.48s)' - ' --- PASS: kuttl/harness/keystone_scale (89.11s)' - ' --- PASS: kuttl/harness/keystone_tls (58.27s)' - ' --- PASS: kuttl/harness/keystone_resources (70.58s)' - ' --- FAIL: kuttl/harness/fernet_rotation (228.18s)' - FAIL - 'make[1]: *** [Makefile:1807: keystone_kuttl_run] Error 1' - 'make[1]: Leaving directory ''/home/zuul/src/github.com/openstack-k8s-operators/install_yamls''' - 'make: *** [Makefile:1816: keystone_kuttl] Error 2' 2025-11-25 08:56:04,416 p=31436 u=zuul n=ansible | ...ignoring 2025-11-25 08:56:04,447 p=31436 u=zuul n=ansible | TASK [Get resource status after keystone_kuttl run _raw_params={{ item }} >> {{ cifmw_artifacts_basedir }}/logs/cmd_after_{{ operator }}_kuttl.log ] *** 2025-11-25 08:56:04,447 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:13:36.227) 0:15:59.243 ****** 2025-11-25 08:56:04,447 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:13:36.227) 0:15:59.241 ****** 2025-11-25 08:56:04,460 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => msg: '''commands_after_kuttl_run'' is undefined. ''commands_after_kuttl_run'' is undefined' 2025-11-25 08:56:04,460 p=31436 u=zuul n=ansible | ...ignoring 2025-11-25 08:56:04,469 p=31436 u=zuul n=ansible | TASK [Find the generated JUnitXML files paths={{ cifmw_installyamls_repos }}, file_type=file, patterns=*.xml] *** 2025-11-25 08:56:04,469 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.022) 0:15:59.266 ****** 2025-11-25 08:56:04,469 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.022) 0:15:59.264 ****** 2025-11-25 08:56:04,651 p=31436 u=zuul n=ansible | ok: [localhost] 2025-11-25 08:56:04,659 p=31436 u=zuul n=ansible | TASK [Create the test results directory path={{ _kuttl_test_result_dir }}, state=directory, mode=0755] *** 2025-11-25 08:56:04,659 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.189) 0:15:59.456 ****** 2025-11-25 08:56:04,659 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.189) 0:15:59.454 ****** 2025-11-25 08:56:04,876 p=31436 u=zuul n=ansible | changed: [localhost] 2025-11-25 08:56:04,883 p=31436 u=zuul n=ansible | TASK [Copy the generated test results to the test results directory src={{ item.path }}, dest={{ _kuttl_test_result_dir }}, mode=0644] *** 2025-11-25 08:56:04,884 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.224) 0:15:59.680 ****** 2025-11-25 08:56:04,884 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:04 +0000 (0:00:00.224) 0:15:59.678 ****** 2025-11-25 08:56:05,466 p=31436 u=zuul n=ansible | changed: [localhost] => (item={'path': '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/kuttl-report-keystone.xml', 'mode': '0644', 'isdir': False, 'ischr': False, 'isblk': False, 'isreg': True, 'isfifo': False, 'islnk': False, 'issock': False, 'uid': 1000, 'gid': 1000, 'size': 1170, 'inode': 25308104, 'dev': 64513, 'nlink': 1, 'atime': 1764060964.075061, 'mtime': 1764060964.075061, 'ctime': 1764060964.075061, 'gr_name': 'zuul', 'pw_name': 'zuul', 'wusr': True, 'rusr': True, 'xusr': False, 'wgrp': False, 'rgrp': True, 'xgrp': False, 'woth': False, 'roth': True, 'xoth': False, 'isuid': False, 'isgid': False}) 2025-11-25 08:56:05,474 p=31436 u=zuul n=ansible | TASK [Fail when any tests failed that=['_kuttl_curr_operator_result.rc == 0'], success_msg=KUTTL tests for {{ operator }} passed, fail_msg=KUTTL tests for {{ operator }} failed] *** 2025-11-25 08:56:05,475 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:05 +0000 (0:00:00.591) 0:16:00.271 ****** 2025-11-25 08:56:05,475 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:05 +0000 (0:00:00.591) 0:16:00.269 ****** 2025-11-25 08:56:05,521 p=31436 u=zuul n=ansible | fatal: [localhost]: FAILED! => assertion: _kuttl_curr_operator_result.rc == 0 changed: false evaluated_to: false msg: KUTTL tests for keystone failed 2025-11-25 08:56:05,522 p=31436 u=zuul n=ansible | NO MORE HOSTS LEFT ************************************************************* 2025-11-25 08:56:05,523 p=31436 u=zuul n=ansible | PLAY RECAP ********************************************************************* 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | localhost : ok=109 changed=50 unreachable=0 failed=1 skipped=60 rescued=0 ignored=5 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:05 +0000 (0:00:00.049) 0:16:00.320 ****** 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | =============================================================================== 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | install_yamls_makes : Run keystone_kuttl ------------------------------ 816.23s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | install_yamls_makes : Run download_tools ------------------------------- 35.01s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_setup : Install needed packages ------------------------------------- 29.79s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_local_storage : Remove the cifmw_cls_namespace namespace ------------ 10.88s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | repo_setup : Initialize python venv and install requirements ------------ 8.63s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_local_storage : Perform action in the PV directory ------------------- 6.04s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_local_storage : Perform action in the PV directory ------------------- 5.91s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_setup : Install openshift client ------------------------------------- 5.38s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | install_yamls_makes : Run crc_attach_default_interface ------------------ 5.19s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | openshift_setup : Create required namespaces ---------------------------- 1.64s 2025-11-25 08:56:05,524 p=31436 u=zuul n=ansible | ci_local_storage : Fetch hostnames for all hosts ------------------------ 1.60s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | install_ca : Update ca bundle ------------------------------------------- 1.53s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | repo_setup : Get repo-setup repository ---------------------------------- 1.13s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ci_setup : Manage directories ------------------------------------------- 1.03s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | repo_setup : Make sure git-core package is installed -------------------- 0.99s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | Gathering Facts --------------------------------------------------------- 0.98s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ci_local_storage : Fetch hostnames for all hosts ------------------------ 0.98s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | openshift_setup : Patch network operator -------------------------------- 0.95s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | openshift_setup : Gather network.operator info -------------------------- 0.90s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | repo_setup : Install repo-setup package --------------------------------- 0.85s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | Tuesday 25 November 2025 08:56:05 +0000 (0:00:00.050) 0:16:00.320 ****** 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | =============================================================================== 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | install_yamls_makes --------------------------------------------------- 856.60s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ci_setup --------------------------------------------------------------- 37.47s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ci_local_storage ------------------------------------------------------- 31.29s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | repo_setup ------------------------------------------------------------- 17.10s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | openshift_setup --------------------------------------------------------- 4.81s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | openshift_login --------------------------------------------------------- 4.07s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | install_yamls ----------------------------------------------------------- 3.06s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | install_ca -------------------------------------------------------------- 1.97s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | gather_facts ------------------------------------------------------------ 0.98s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | cifmw_setup ------------------------------------------------------------- 0.64s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ansible.builtin.copy ---------------------------------------------------- 0.59s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | discover_latest_image --------------------------------------------------- 0.41s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | ansible.builtin.include_role -------------------------------------------- 0.33s 2025-11-25 08:56:05,525 p=31436 u=zuul n=ansible | run_hook ---------------------------------------------------------------- 0.24s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.file ---------------------------------------------------- 0.22s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.find ---------------------------------------------------- 0.19s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.set_fact ------------------------------------------------ 0.11s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.include_tasks ------------------------------------------- 0.06s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.include_vars -------------------------------------------- 0.05s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.assert -------------------------------------------------- 0.05s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ansible.builtin.shell --------------------------------------------------- 0.05s 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2025-11-25 08:56:05,526 p=31436 u=zuul n=ansible | total ----------------------------------------------------------------- 960.28s