2026-03-14 09:05:34,411 p=31421 u=zuul n=ansible | Starting galaxy collection install process 2026-03-14 09:05:34,412 p=31421 u=zuul n=ansible | Process install dependency map 2026-03-14 09:05:48,178 p=31421 u=zuul n=ansible | Starting collection install process 2026-03-14 09:05:48,178 p=31421 u=zuul n=ansible | Installing 'cifmw.general:1.0.0+d2bca26e' to '/home/zuul/.ansible/collections/ansible_collections/cifmw/general' 2026-03-14 09:05:48,514 p=31421 u=zuul n=ansible | Created collection for cifmw.general:1.0.0+d2bca26e at /home/zuul/.ansible/collections/ansible_collections/cifmw/general 2026-03-14 09:05:48,514 p=31421 u=zuul n=ansible | cifmw.general:1.0.0+d2bca26e was installed successfully 2026-03-14 09:05:48,514 p=31421 u=zuul n=ansible | Installing 'containers.podman:1.16.2' to '/home/zuul/.ansible/collections/ansible_collections/containers/podman' 2026-03-14 09:05:48,555 p=31421 u=zuul n=ansible | Created collection for containers.podman:1.16.2 at /home/zuul/.ansible/collections/ansible_collections/containers/podman 2026-03-14 09:05:48,555 p=31421 u=zuul n=ansible | containers.podman:1.16.2 was installed successfully 2026-03-14 09:05:48,555 p=31421 u=zuul n=ansible | Installing 'community.general:10.0.1' to '/home/zuul/.ansible/collections/ansible_collections/community/general' 2026-03-14 09:05:49,053 p=31421 u=zuul n=ansible | Created collection for community.general:10.0.1 at /home/zuul/.ansible/collections/ansible_collections/community/general 2026-03-14 09:05:49,053 p=31421 u=zuul n=ansible | community.general:10.0.1 was installed successfully 2026-03-14 09:05:49,053 p=31421 u=zuul n=ansible | Installing 'ansible.posix:1.6.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/posix' 2026-03-14 09:05:49,088 p=31421 u=zuul n=ansible | Created collection for ansible.posix:1.6.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/posix 2026-03-14 09:05:49,088 p=31421 u=zuul n=ansible | ansible.posix:1.6.2 was installed successfully 2026-03-14 09:05:49,088 p=31421 u=zuul n=ansible | Installing 'ansible.utils:5.1.2' to '/home/zuul/.ansible/collections/ansible_collections/ansible/utils' 2026-03-14 09:05:49,161 p=31421 u=zuul n=ansible | Created collection for ansible.utils:5.1.2 at /home/zuul/.ansible/collections/ansible_collections/ansible/utils 2026-03-14 09:05:49,162 p=31421 u=zuul n=ansible | ansible.utils:5.1.2 was installed successfully 2026-03-14 09:05:49,162 p=31421 u=zuul n=ansible | Installing 'community.libvirt:1.3.0' to '/home/zuul/.ansible/collections/ansible_collections/community/libvirt' 2026-03-14 09:05:49,177 p=31421 u=zuul n=ansible | Created collection for community.libvirt:1.3.0 at /home/zuul/.ansible/collections/ansible_collections/community/libvirt 2026-03-14 09:05:49,177 p=31421 u=zuul n=ansible | community.libvirt:1.3.0 was installed successfully 2026-03-14 09:05:49,177 p=31421 u=zuul n=ansible | Installing 'community.crypto:2.22.3' to '/home/zuul/.ansible/collections/ansible_collections/community/crypto' 2026-03-14 09:05:49,276 p=31421 u=zuul n=ansible | Created collection for community.crypto:2.22.3 at /home/zuul/.ansible/collections/ansible_collections/community/crypto 2026-03-14 09:05:49,276 p=31421 u=zuul n=ansible | community.crypto:2.22.3 was installed successfully 2026-03-14 09:05:49,276 p=31421 u=zuul n=ansible | Installing 'kubernetes.core:5.0.0' to '/home/zuul/.ansible/collections/ansible_collections/kubernetes/core' 2026-03-14 09:05:49,361 p=31421 u=zuul n=ansible | Created collection for kubernetes.core:5.0.0 at /home/zuul/.ansible/collections/ansible_collections/kubernetes/core 2026-03-14 09:05:49,361 p=31421 u=zuul n=ansible | kubernetes.core:5.0.0 was installed successfully 2026-03-14 09:05:49,361 p=31421 u=zuul n=ansible | Installing 'ansible.netcommon:7.1.0' to '/home/zuul/.ansible/collections/ansible_collections/ansible/netcommon' 2026-03-14 09:05:49,409 p=31421 u=zuul n=ansible | Created collection for ansible.netcommon:7.1.0 at /home/zuul/.ansible/collections/ansible_collections/ansible/netcommon 2026-03-14 09:05:49,410 p=31421 u=zuul n=ansible | ansible.netcommon:7.1.0 was installed successfully 2026-03-14 09:05:49,410 p=31421 u=zuul n=ansible | Installing 'openstack.config_template:2.1.1' to '/home/zuul/.ansible/collections/ansible_collections/openstack/config_template' 2026-03-14 09:05:49,422 p=31421 u=zuul n=ansible | Created collection for openstack.config_template:2.1.1 at /home/zuul/.ansible/collections/ansible_collections/openstack/config_template 2026-03-14 09:05:49,422 p=31421 u=zuul n=ansible | openstack.config_template:2.1.1 was installed successfully 2026-03-14 09:05:49,422 p=31421 u=zuul n=ansible | Installing 'junipernetworks.junos:9.1.0' to '/home/zuul/.ansible/collections/ansible_collections/junipernetworks/junos' 2026-03-14 09:05:49,585 p=31421 u=zuul n=ansible | Created collection for junipernetworks.junos:9.1.0 at /home/zuul/.ansible/collections/ansible_collections/junipernetworks/junos 2026-03-14 09:05:49,585 p=31421 u=zuul n=ansible | junipernetworks.junos:9.1.0 was installed successfully 2026-03-14 09:05:49,585 p=31421 u=zuul n=ansible | Installing 'cisco.ios:9.0.3' to '/home/zuul/.ansible/collections/ansible_collections/cisco/ios' 2026-03-14 09:05:49,764 p=31421 u=zuul n=ansible | Created collection for cisco.ios:9.0.3 at /home/zuul/.ansible/collections/ansible_collections/cisco/ios 2026-03-14 09:05:49,764 p=31421 u=zuul n=ansible | cisco.ios:9.0.3 was installed successfully 2026-03-14 09:05:49,764 p=31421 u=zuul n=ansible | Installing 'mellanox.onyx:1.0.0' to '/home/zuul/.ansible/collections/ansible_collections/mellanox/onyx' 2026-03-14 09:05:49,789 p=31421 u=zuul n=ansible | Created collection for mellanox.onyx:1.0.0 at /home/zuul/.ansible/collections/ansible_collections/mellanox/onyx 2026-03-14 09:05:49,789 p=31421 u=zuul n=ansible | mellanox.onyx:1.0.0 was installed successfully 2026-03-14 09:05:49,789 p=31421 u=zuul n=ansible | Installing 'community.okd:4.0.0' to '/home/zuul/.ansible/collections/ansible_collections/community/okd' 2026-03-14 09:05:49,810 p=31421 u=zuul n=ansible | Created collection for community.okd:4.0.0 at /home/zuul/.ansible/collections/ansible_collections/community/okd 2026-03-14 09:05:49,810 p=31421 u=zuul n=ansible | community.okd:4.0.0 was installed successfully 2026-03-14 09:05:49,810 p=31421 u=zuul n=ansible | Installing '@NAMESPACE@.@NAME@:3.1.4' to '/home/zuul/.ansible/collections/ansible_collections/@NAMESPACE@/@NAME@' 2026-03-14 09:05:49,875 p=31421 u=zuul n=ansible | Created collection for @NAMESPACE@.@NAME@:3.1.4 at /home/zuul/.ansible/collections/ansible_collections/@NAMESPACE@/@NAME@ 2026-03-14 09:05:49,875 p=31421 u=zuul n=ansible | @NAMESPACE@.@NAME@:3.1.4 was installed successfully 2026-03-14 09:05:57,268 p=31980 u=zuul n=ansible | PLAY [Bootstrap playbook] ****************************************************** 2026-03-14 09:05:57,305 p=31980 u=zuul n=ansible | TASK [Gathering Facts ] ******************************************************** 2026-03-14 09:05:57,305 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:57 +0000 (0:00:00.054) 0:00:00.054 ******** 2026-03-14 09:05:57,305 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:57 +0000 (0:00:00.052) 0:00:00.052 ******** 2026-03-14 09:05:58,464 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:05:58,479 p=31980 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] *** 2026-03-14 09:05:58,479 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:01.173) 0:00:01.228 ******** 2026-03-14 09:05:58,479 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:01.173) 0:00:01.226 ******** 2026-03-14 09:05:58,517 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:05:58,528 p=31980 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 }}] *** 2026-03-14 09:05:58,529 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.049) 0:00:01.277 ******** 2026-03-14 09:05:58,529 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.049) 0:00:01.276 ******** 2026-03-14 09:05:58,617 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:05:58,624 p=31980 u=zuul n=ansible | TASK [install_ca : Ensure target directory exists path={{ cifmw_install_ca_trust_dir }}, state=directory, mode=0755] *** 2026-03-14 09:05:58,624 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.095) 0:00:01.373 ******** 2026-03-14 09:05:58,624 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.094) 0:00:01.371 ******** 2026-03-14 09:05:58,963 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:05:58,969 p=31980 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] *** 2026-03-14 09:05:58,969 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.345) 0:00:01.718 ******** 2026-03-14 09:05:58,969 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.345) 0:00:01.717 ******** 2026-03-14 09:05:58,984 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:05:58,991 p=31980 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] *** 2026-03-14 09:05:58,991 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.022) 0:00:01.740 ******** 2026-03-14 09:05:58,991 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:58 +0000 (0:00:00.022) 0:00:01.739 ******** 2026-03-14 09:05:59,007 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:05:59,014 p=31980 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] *** 2026-03-14 09:05:59,014 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.022) 0:00:01.763 ******** 2026-03-14 09:05:59,014 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.022) 0:00:01.761 ******** 2026-03-14 09:05:59,030 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:05:59,036 p=31980 u=zuul n=ansible | TASK [install_ca : Update ca bundle _raw_params=update-ca-trust] *************** 2026-03-14 09:05:59,036 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.022) 0:00:01.785 ******** 2026-03-14 09:05:59,037 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.022) 0:00:01.784 ******** 2026-03-14 09:05:59,054 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:05:59,064 p=31980 u=zuul n=ansible | TASK [repo_setup : Ensure directories are present path={{ cifmw_repo_setup_basedir }}/{{ item }}, state=directory, mode=0755] *** 2026-03-14 09:05:59,064 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.027) 0:00:01.813 ******** 2026-03-14 09:05:59,064 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.027) 0:00:01.811 ******** 2026-03-14 09:05:59,255 p=31980 u=zuul n=ansible | changed: [controller] => (item=tmp) 2026-03-14 09:05:59,447 p=31980 u=zuul n=ansible | changed: [controller] => (item=artifacts/repositories) 2026-03-14 09:05:59,624 p=31980 u=zuul n=ansible | changed: [controller] => (item=venv/repo_setup) 2026-03-14 09:05:59,632 p=31980 u=zuul n=ansible | TASK [repo_setup : Make sure git-core package is installed name=git-core, state=present] *** 2026-03-14 09:05:59,632 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.568) 0:00:02.381 ******** 2026-03-14 09:05:59,632 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:05:59 +0000 (0:00:00.568) 0:00:02.380 ******** 2026-03-14 09:06:00,585 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:06:00,590 p=31980 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 }}] *** 2026-03-14 09:06:00,590 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:00 +0000 (0:00:00.958) 0:00:03.339 ******** 2026-03-14 09:06:00,591 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:00 +0000 (0:00:00.958) 0:00:03.338 ******** 2026-03-14 09:06:01,513 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:01,521 p=31980 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] *** 2026-03-14 09:06:01,521 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:01 +0000 (0:00:00.930) 0:00:04.270 ******** 2026-03-14 09:06:01,521 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:01 +0000 (0:00:00.930) 0:00:04.269 ******** 2026-03-14 09:06:09,950 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:09,956 p=31980 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] *** 2026-03-14 09:06:09,956 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:09 +0000 (0:00:08.434) 0:00:12.705 ******** 2026-03-14 09:06:09,956 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:09 +0000 (0:00:08.434) 0:00:12.703 ******** 2026-03-14 09:06:10,808 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:10,816 p=31980 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 }}] *** 2026-03-14 09:06:10,817 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:10 +0000 (0:00:00.860) 0:00:13.565 ******** 2026-03-14 09:06:10,817 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:10 +0000 (0:00:00.860) 0:00:13.564 ******** 2026-03-14 09:06:10,835 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:10,844 p=31980 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 }}] *** 2026-03-14 09:06:10,844 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:10 +0000 (0:00:00.027) 0:00:13.593 ******** 2026-03-14 09:06:10,844 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:10 +0000 (0:00:00.027) 0:00:13.591 ******** 2026-03-14 09:06:11,425 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:11,435 p=31980 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] *** 2026-03-14 09:06:11,435 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.591) 0:00:14.184 ******** 2026-03-14 09:06:11,435 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.591) 0:00:14.183 ******** 2026-03-14 09:06:11,461 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:11,469 p=31980 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 }}] *** 2026-03-14 09:06:11,469 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.034) 0:00:14.218 ******** 2026-03-14 09:06:11,469 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.034) 0:00:14.217 ******** 2026-03-14 09:06:11,496 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:11,502 p=31980 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] *** 2026-03-14 09:06:11,502 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.032) 0:00:14.251 ******** 2026-03-14 09:06:11,502 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.032) 0:00:14.250 ******** 2026-03-14 09:06:11,526 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:11,532 p=31980 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] *** 2026-03-14 09:06:11,532 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.029) 0:00:14.281 ******** 2026-03-14 09:06:11,532 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.029) 0:00:14.279 ******** 2026-03-14 09:06:11,964 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:11,969 p=31980 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] *** 2026-03-14 09:06:11,970 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.437) 0:00:14.718 ******** 2026-03-14 09:06:11,970 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:11 +0000 (0:00:00.437) 0:00:14.717 ******** 2026-03-14 09:06:12,732 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:12,738 p=31980 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] *** 2026-03-14 09:06:12,738 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.768) 0:00:15.487 ******** 2026-03-14 09:06:12,738 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.768) 0:00:15.485 ******** 2026-03-14 09:06:12,750 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,756 p=31980 u=zuul n=ansible | TASK [repo_setup : Slurp current podified hash src={{ cifmw_repo_setup_basedir }}/artifacts/repositories/delorean.repo.md5] *** 2026-03-14 09:06:12,756 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.018) 0:00:15.505 ******** 2026-03-14 09:06:12,756 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.018) 0:00:15.504 ******** 2026-03-14 09:06:12,768 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,774 p=31980 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) }}] *** 2026-03-14 09:06:12,774 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.523 ******** 2026-03-14 09:06:12,774 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.521 ******** 2026-03-14 09:06:12,786 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,792 p=31980 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] *** 2026-03-14 09:06:12,792 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.541 ******** 2026-03-14 09:06:12,792 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.018) 0:00:15.539 ******** 2026-03-14 09:06:12,816 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:06:12,822 p=31980 u=zuul n=ansible | TASK [repo_setup : Create download directory path={{ cifmw_repo_setup_rhos_release_path }}, state=directory, mode=0755] *** 2026-03-14 09:06:12,822 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.030) 0:00:15.571 ******** 2026-03-14 09:06:12,822 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.030) 0:00:15.569 ******** 2026-03-14 09:06:12,832 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,839 p=31980 u=zuul n=ansible | TASK [repo_setup : Print the URL to request msg={{ cifmw_repo_setup_rhos_release_rpm }}] *** 2026-03-14 09:06:12,840 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.588 ******** 2026-03-14 09:06:12,840 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.587 ******** 2026-03-14 09:06:12,850 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,856 p=31980 u=zuul n=ansible | TASK [Download the RPM name=krb_request] *************************************** 2026-03-14 09:06:12,856 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.605 ******** 2026-03-14 09:06:12,856 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.604 ******** 2026-03-14 09:06:12,868 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,874 p=31980 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 }}] *** 2026-03-14 09:06:12,875 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.018) 0:00:15.623 ******** 2026-03-14 09:06:12,875 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.018) 0:00:15.622 ******** 2026-03-14 09:06:12,886 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,892 p=31980 u=zuul n=ansible | TASK [repo_setup : Get rhos-release tool version _raw_params=rhos-release --version] *** 2026-03-14 09:06:12,892 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.641 ******** 2026-03-14 09:06:12,892 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.017) 0:00:15.639 ******** 2026-03-14 09:06:12,902 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,908 p=31980 u=zuul n=ansible | TASK [repo_setup : Print rhos-release tool version msg={{ rr_version.stdout }}] *** 2026-03-14 09:06:12,908 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.657 ******** 2026-03-14 09:06:12,908 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.656 ******** 2026-03-14 09:06:12,918 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,925 p=31980 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 }}] *** 2026-03-14 09:06:12,925 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.674 ******** 2026-03-14 09:06:12,925 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.016) 0:00:15.672 ******** 2026-03-14 09:06:12,935 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:12,941 p=31980 u=zuul n=ansible | TASK [repo_setup : Check for /etc/ci/mirror_info.sh path=/etc/ci/mirror_info.sh] *** 2026-03-14 09:06:12,941 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.015) 0:00:15.689 ******** 2026-03-14 09:06:12,941 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:12 +0000 (0:00:00.015) 0:00:15.688 ******** 2026-03-14 09:06:13,139 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:06:13,145 p=31980 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 ] *** 2026-03-14 09:06:13,145 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.204) 0:00:15.894 ******** 2026-03-14 09:06:13,145 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.204) 0:00:15.893 ******** 2026-03-14 09:06:13,351 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:13,357 p=31980 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 ] *** 2026-03-14 09:06:13,357 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.211) 0:00:16.106 ******** 2026-03-14 09:06:13,357 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.211) 0:00:16.105 ******** 2026-03-14 09:06:13,582 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:13,588 p=31980 u=zuul n=ansible | TASK [repo_setup : Check for gating.repo file on content provider url=http://{{ content_provider_registry_ip }}:8766/gating.repo] *** 2026-03-14 09:06:13,588 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.230) 0:00:16.337 ******** 2026-03-14 09:06:13,588 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:13 +0000 (0:00:00.231) 0:00:16.336 ******** 2026-03-14 09:06:14,182 p=31980 u=zuul n=ansible | fatal: [controller]: FAILED! => changed: false elapsed: 0 msg: 'Status code was -1 and not [200]: Request failed: ' redirected: false status: -1 url: http://38.102.83.153:8766/gating.repo 2026-03-14 09:06:14,183 p=31980 u=zuul n=ansible | ...ignoring 2026-03-14 09:06:14,189 p=31980 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] *** 2026-03-14 09:06:14,189 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.600) 0:00:16.938 ******** 2026-03-14 09:06:14,189 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.600) 0:00:16.936 ******** 2026-03-14 09:06:14,208 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:14,214 p=31980 u=zuul n=ansible | TASK [repo_setup : Check for DLRN repo at the destination path={{ cifmw_repo_setup_output }}/delorean.repo] *** 2026-03-14 09:06:14,214 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.025) 0:00:16.963 ******** 2026-03-14 09:06:14,214 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.025) 0:00:16.962 ******** 2026-03-14 09:06:14,234 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:14,239 p=31980 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] *** 2026-03-14 09:06:14,239 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.025) 0:00:16.988 ******** 2026-03-14 09:06:14,239 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.025) 0:00:16.987 ******** 2026-03-14 09:06:14,261 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:14,267 p=31980 u=zuul n=ansible | TASK [repo_setup : Check for DLRN component repo path={{ cifmw_repo_setup_output }}/{{ _comp_repo }}] *** 2026-03-14 09:06:14,267 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.027) 0:00:17.016 ******** 2026-03-14 09:06:14,267 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.027) 0:00:17.014 ******** 2026-03-14 09:06:14,291 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:14,297 p=31980 u=zuul n=ansible | TASK [repo_setup : Lower the priority of component repos to allow installation from gating repo path={{ cifmw_repo_setup_output }}/{{ _comp_repo }}, regexp=priority=1, replace=priority=2] *** 2026-03-14 09:06:14,297 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.030) 0:00:17.046 ******** 2026-03-14 09:06:14,297 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.030) 0:00:17.044 ******** 2026-03-14 09:06:14,320 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:06:14,325 p=31980 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] *** 2026-03-14 09:06:14,325 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.028) 0:00:17.074 ******** 2026-03-14 09:06:14,325 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.028) 0:00:17.073 ******** 2026-03-14 09:06:14,613 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:06:14,619 p=31980 u=zuul n=ansible | TASK [repo_setup : Remove existing repos from /etc/yum.repos.d directory path={{ item }}, state=absent] *** 2026-03-14 09:06:14,619 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.293) 0:00:17.368 ******** 2026-03-14 09:06:14,619 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:14 +0000 (0:00:00.293) 0:00:17.366 ******** 2026-03-14 09:06:14,849 p=31980 u=zuul n=ansible | changed: [controller] => (item=/etc/yum.repos.d/centos-addons.repo) 2026-03-14 09:06:15,052 p=31980 u=zuul n=ansible | changed: [controller] => (item=/etc/yum.repos.d/centos.repo) 2026-03-14 09:06:15,061 p=31980 u=zuul n=ansible | TASK [repo_setup : Cleanup existing metadata _raw_params=dnf clean metadata] *** 2026-03-14 09:06:15,061 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.442) 0:00:17.810 ******** 2026-03-14 09:06:15,061 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.442) 0:00:17.809 ******** 2026-03-14 09:06:15,452 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:15,458 p=31980 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] *** 2026-03-14 09:06:15,458 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.397) 0:00:18.207 ******** 2026-03-14 09:06:15,458 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.397) 0:00:18.206 ******** 2026-03-14 09:06:15,779 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:06:15,789 p=31980 u=zuul n=ansible | TASK [ci_setup : Gather variables for each operating system _raw_params={{ item }}] *** 2026-03-14 09:06:15,790 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.331) 0:00:18.538 ******** 2026-03-14 09:06:15,790 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.331) 0:00:18.537 ******** 2026-03-14 09:06:15,819 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/ci_setup/vars/redhat.yml) 2026-03-14 09:06:15,827 p=31980 u=zuul n=ansible | TASK [ci_setup : List packages to install var=cifmw_ci_setup_packages] ********* 2026-03-14 09:06:15,827 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.037) 0:00:18.576 ******** 2026-03-14 09:06:15,827 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.037) 0:00:18.574 ******** 2026-03-14 09:06:15,842 p=31980 u=zuul n=ansible | ok: [controller] => cifmw_ci_setup_packages: - bash-completion - ca-certificates - git-core - make - tar - tmux - python3-pip 2026-03-14 09:06:15,848 p=31980 u=zuul n=ansible | TASK [ci_setup : Install needed packages name={{ cifmw_ci_setup_packages }}, state=latest] *** 2026-03-14 09:06:15,848 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.021) 0:00:18.597 ******** 2026-03-14 09:06:15,848 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:06:15 +0000 (0:00:00.021) 0:00:18.596 ******** 2026-03-14 09:07:16,358 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:16,364 p=31980 u=zuul n=ansible | TASK [ci_setup : Gather version of openshift client _raw_params=oc version --client -o yaml] *** 2026-03-14 09:07:16,365 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:01:00.516) 0:01:19.113 ******** 2026-03-14 09:07:16,365 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:01:00.516) 0:01:19.112 ******** 2026-03-14 09:07:16,558 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:16,564 p=31980 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] *** 2026-03-14 09:07:16,564 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:00:00.199) 0:01:19.313 ******** 2026-03-14 09:07:16,564 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:00:00.199) 0:01:19.311 ******** 2026-03-14 09:07:16,764 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:16,770 p=31980 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] *** 2026-03-14 09:07:16,770 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:00:00.206) 0:01:19.519 ******** 2026-03-14 09:07:16,770 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:16 +0000 (0:00:00.206) 0:01:19.518 ******** 2026-03-14 09:07:22,023 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:22,031 p=31980 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] *** 2026-03-14 09:07:22,031 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:05.261) 0:01:24.780 ******** 2026-03-14 09:07:22,031 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:05.261) 0:01:24.779 ******** 2026-03-14 09:07:22,052 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,060 p=31980 u=zuul n=ansible | TASK [ci_setup : Create completion file] *************************************** 2026-03-14 09:07:22,060 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.028) 0:01:24.809 ******** 2026-03-14 09:07:22,060 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.028) 0:01:24.808 ******** 2026-03-14 09:07:22,397 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:22,403 p=31980 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] *** 2026-03-14 09:07:22,403 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.343) 0:01:25.152 ******** 2026-03-14 09:07:22,403 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.343) 0:01:25.151 ******** 2026-03-14 09:07:22,714 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:22,726 p=31980 u=zuul n=ansible | TASK [ci_setup : Check rhsm status _raw_params=subscription-manager status] **** 2026-03-14 09:07:22,726 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.323) 0:01:25.475 ******** 2026-03-14 09:07:22,726 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.323) 0:01:25.474 ******** 2026-03-14 09:07:22,740 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,751 p=31980 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([])) }}] *** 2026-03-14 09:07:22,751 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.500 ******** 2026-03-14 09:07:22,752 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.499 ******** 2026-03-14 09:07:22,765 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,777 p=31980 u=zuul n=ansible | TASK [ci_setup : Enabling the required repositories. name={{ item }}, state={{ rhsm_repo_state | default('enabled') }}] *** 2026-03-14 09:07:22,777 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.526 ******** 2026-03-14 09:07:22,778 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.525 ******** 2026-03-14 09:07:22,791 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,803 p=31980 u=zuul n=ansible | TASK [ci_setup : Get current /etc/redhat-release _raw_params=cat /etc/redhat-release] *** 2026-03-14 09:07:22,803 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.552 ******** 2026-03-14 09:07:22,803 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.025) 0:01:25.551 ******** 2026-03-14 09:07:22,815 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,829 p=31980 u=zuul n=ansible | TASK [ci_setup : Print current /etc/redhat-release msg={{ _current_rh_release.stdout }}] *** 2026-03-14 09:07:22,830 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.026) 0:01:25.578 ******** 2026-03-14 09:07:22,830 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.026) 0:01:25.577 ******** 2026-03-14 09:07:22,841 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,852 p=31980 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') }}] *** 2026-03-14 09:07:22,852 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.022) 0:01:25.601 ******** 2026-03-14 09:07:22,852 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.022) 0:01:25.600 ******** 2026-03-14 09:07:22,870 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:22,879 p=31980 u=zuul n=ansible | TASK [ci_setup : Manage directories path={{ item }}, state={{ directory_state }}, mode=0755, owner={{ ansible_user_id }}, group={{ ansible_user_id }}] *** 2026-03-14 09:07:22,880 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.027) 0:01:25.629 ******** 2026-03-14 09:07:22,880 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:22 +0000 (0:00:00.027) 0:01:25.627 ******** 2026-03-14 09:07:23,135 p=31980 u=zuul n=ansible | changed: [controller] => (item=/home/zuul/ci-framework-data/artifacts/manifests/openstack/cr) 2026-03-14 09:07:23,363 p=31980 u=zuul n=ansible | changed: [controller] => (item=/home/zuul/ci-framework-data/logs) 2026-03-14 09:07:23,595 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/ci-framework-data/tmp) 2026-03-14 09:07:23,784 p=31980 u=zuul n=ansible | changed: [controller] => (item=/home/zuul/ci-framework-data/volumes) 2026-03-14 09:07:23,982 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/ci-framework-data/artifacts/parameters) 2026-03-14 09:07:23,994 p=31980 u=zuul n=ansible | TASK [Prepare install_yamls make targets name=install_yamls, apply={'tags': ['bootstrap']}] *** 2026-03-14 09:07:23,994 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:23 +0000 (0:00:01.114) 0:01:26.743 ******** 2026-03-14 09:07:23,994 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:23 +0000 (0:00:01.114) 0:01:26.742 ******** 2026-03-14 09:07:24,117 p=31980 u=zuul n=ansible | TASK [install_yamls : Ensure directories exist path={{ item }}, state=directory, mode=0755] *** 2026-03-14 09:07:24,117 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.122) 0:01:26.866 ******** 2026-03-14 09:07:24,117 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.122) 0:01:26.865 ******** 2026-03-14 09:07:24,334 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/ci-framework-data/artifacts) 2026-03-14 09:07:24,514 p=31980 u=zuul n=ansible | changed: [controller] => (item=/home/zuul/ci-framework-data/artifacts/roles/install_yamls_makes/tasks) 2026-03-14 09:07:24,705 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/ci-framework-data/artifacts/parameters) 2026-03-14 09:07:24,712 p=31980 u=zuul n=ansible | TASK [Create variables with local repos based on Zuul items name=install_yamls, tasks_from=zuul_set_operators_repo.yml] *** 2026-03-14 09:07:24,713 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.595) 0:01:27.461 ******** 2026-03-14 09:07:24,713 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.595) 0:01:27.460 ******** 2026-03-14 09:07:24,767 p=31980 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) }}] *** 2026-03-14 09:07:24,767 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.054) 0:01:27.516 ******** 2026-03-14 09:07:24,768 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.054) 0:01:27.515 ******** 2026-03-14 09:07:24,807 p=31980 u=zuul n=ansible | ok: [controller] => (item={'branch': '18.0-fr5', 'change': '353', 'change_url': 'https://github.com/openstack-k8s-operators/watcher-operator/pull/353', 'commit_id': '3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'patchset': '3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'project': {'canonical_hostname': 'github.com', 'canonical_name': 'github.com/openstack-k8s-operators/watcher-operator', 'name': 'openstack-k8s-operators/watcher-operator', 'short_name': 'watcher-operator', 'src_dir': 'src/github.com/openstack-k8s-operators/watcher-operator'}, 'topic': None}) 2026-03-14 09:07:24,814 p=31980 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 }} ] *** 2026-03-14 09:07:24,814 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.046) 0:01:27.563 ******** 2026-03-14 09:07:24,814 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.046) 0:01:27.562 ******** 2026-03-14 09:07:24,854 p=31980 u=zuul n=ansible | ok: [controller] => (item={'branch': '18.0-fr5', 'change': '353', 'change_url': 'https://github.com/openstack-k8s-operators/watcher-operator/pull/353', 'commit_id': '3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'patchset': '3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'project': {'canonical_hostname': 'github.com', 'canonical_name': 'github.com/openstack-k8s-operators/watcher-operator', 'name': 'openstack-k8s-operators/watcher-operator', 'short_name': 'watcher-operator', 'src_dir': 'src/github.com/openstack-k8s-operators/watcher-operator'}, 'topic': None}) => msg: | _repo_operator_name: watcher _repo_operator_info: [{'key': 'WATCHER_REPO', 'value': '/home/zuul/src/github.com/openstack-k8s-operators/watcher-operator'}, {'key': 'WATCHER_BRANCH', 'value': ''}] cifmw_install_yamls_operators_repo: {'WATCHER_REPO': '/home/zuul/src/github.com/openstack-k8s-operators/watcher-operator', 'WATCHER_BRANCH': ''} 2026-03-14 09:07:24,878 p=31980 u=zuul n=ansible | TASK [Customize install_yamls devsetup vars if needed name=install_yamls, tasks_from=customize_devsetup_vars.yml] *** 2026-03-14 09:07:24,878 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.064) 0:01:27.627 ******** 2026-03-14 09:07:24,879 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.064) 0:01:27.626 ******** 2026-03-14 09:07:24,930 p=31980 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] *** 2026-03-14 09:07:24,930 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.051) 0:01:27.679 ******** 2026-03-14 09:07:24,930 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.051) 0:01:27.677 ******** 2026-03-14 09:07:24,944 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:24,950 p=31980 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] *** 2026-03-14 09:07:24,950 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.020) 0:01:27.699 ******** 2026-03-14 09:07:24,950 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.020) 0:01:27.697 ******** 2026-03-14 09:07:24,963 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:24,969 p=31980 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] *** 2026-03-14 09:07:24,969 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.019) 0:01:27.718 ******** 2026-03-14 09:07:24,969 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.019) 0:01:27.717 ******** 2026-03-14 09:07:24,983 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:24,989 p=31980 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] *** 2026-03-14 09:07:24,989 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.020) 0:01:27.738 ******** 2026-03-14 09:07:24,990 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:24 +0000 (0:00:00.020) 0:01:27.737 ******** 2026-03-14 09:07:25,003 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:25,013 p=31980 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) }}] *** 2026-03-14 09:07:25,014 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.024) 0:01:27.762 ******** 2026-03-14 09:07:25,014 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.024) 0:01:27.761 ******** 2026-03-14 09:07:25,089 p=31980 u=zuul n=ansible | ok: [controller] => (item={'BMO_SETUP': False}) 2026-03-14 09:07:25,101 p=31980 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] *** 2026-03-14 09:07:25,101 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.087) 0:01:27.850 ******** 2026-03-14 09:07:25,101 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.087) 0:01:27.849 ******** 2026-03-14 09:07:25,135 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:25,140 p=31980 u=zuul n=ansible | TASK [install_yamls : Get environment structure base_path={{ cifmw_install_yamls_repo }}] *** 2026-03-14 09:07:25,140 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.038) 0:01:27.889 ******** 2026-03-14 09:07:25,140 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.038) 0:01:27.888 ******** 2026-03-14 09:07:25,625 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:25,635 p=31980 u=zuul n=ansible | TASK [install_yamls : Ensure Output directory exists path={{ cifmw_install_yamls_out_dir }}, state=directory, mode=0755] *** 2026-03-14 09:07:25,635 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.495) 0:01:28.384 ******** 2026-03-14 09:07:25,636 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.495) 0:01:28.383 ******** 2026-03-14 09:07:25,837 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:25,846 p=31980 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] *** 2026-03-14 09:07:25,846 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.210) 0:01:28.595 ******** 2026-03-14 09:07:25,846 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.210) 0:01:28.593 ******** 2026-03-14 09:07:25,874 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:25,889 p=31980 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] *** 2026-03-14 09:07:25,889 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.043) 0:01:28.638 ******** 2026-03-14 09:07:25,889 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:25 +0000 (0:00:00.043) 0:01:28.637 ******** 2026-03-14 09:07:26,472 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:26,484 p=31980 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] *** 2026-03-14 09:07:26,484 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.594) 0:01:29.233 ******** 2026-03-14 09:07:26,484 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.594) 0:01:29.232 ******** 2026-03-14 09:07:26,506 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:26,516 p=31980 u=zuul n=ansible | TASK [install_yamls : Show the env structure var=cifmw_install_yamls_environment] *** 2026-03-14 09:07:26,516 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.031) 0:01:29.265 ******** 2026-03-14 09:07:26,516 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.031) 0:01:29.263 ******** 2026-03-14 09:07:26,531 p=31980 u=zuul n=ansible | ok: [controller] => cifmw_install_yamls_environment: BMO_SETUP: false CHECKOUT_FROM_OPENSTACK_REF: 'true' OPENSTACK_K8S_BRANCH: 18.0-fr5 OUT: /home/zuul/ci-framework-data/artifacts/manifests OUTPUT_DIR: /home/zuul/ci-framework-data/artifacts/edpm WATCHER_BRANCH: '' WATCHER_REPO: /home/zuul/src/github.com/openstack-k8s-operators/watcher-operator 2026-03-14 09:07:26,540 p=31980 u=zuul n=ansible | TASK [install_yamls : Show the env structure defaults var=cifmw_install_yamls_defaults] *** 2026-03-14 09:07:26,540 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.023) 0:01:29.289 ******** 2026-03-14 09:07:26,540 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.023) 0:01:29.287 ******** 2026-03-14 09:07:26,570 p=31980 u=zuul n=ansible | ok: [controller] => 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 BARBICAN: config/samples/barbican_v1beta1_barbican.yaml BARBICAN_BRANCH: 18.0-fr5 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: 18.0-fr5 BAREMETAL_COMMIT_HASH: '' BAREMETAL_IMG: quay.io/openstack-k8s-operators/openstack-baremetal-operator-index:18.0-fr5-latest BAREMETAL_OS_CONTAINER_IMG: '' BAREMETAL_OS_IMG: '' BAREMETAL_OS_IMG_TYPE: '' 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_BASEURI: https://tarballs.opendev.org/openstack/ironic-python-agent/dib BMO_IPA_BRANCH: stable/2024.1 BMO_IPA_FLAVOR: centos9 BMO_IPA_INSECURE: 'false' 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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 INFRA_COMMIT_HASH: '' INFRA_IMG: quay.io/openstack-k8s-operators/infra-operator-index:18.0-fr5-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: 18.0-fr5 IRONIC_COMMIT_HASH: '' IRONIC_CR: /home/zuul/ci-framework-data/artifacts/manifests/operator/ironic-operator/config/samples/ironic_v1beta1_ironic.yaml IRONIC_IMAGE: quay.io/metal3-io/ironic IRONIC_IMAGE_TAG: release-24.1 IRONIC_IMG: quay.io/openstack-k8s-operators/ironic-operator-index:18.0-fr5-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: 18.0-fr5 KEYSTONE_COMMIT_HASH: '' KEYSTONE_FEDERATION_CLIENT_SECRET: CO**********6f KEYSTONE_FEDERATION_CRYPTO_PASSPHRASE: openstack KEYSTONE_IMG: quay.io/openstack-k8s-operators/keystone-operator-index:18.0-fr5-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: https://github.com/openstack-k8s-operators/keystone-operator.git 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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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' MIRROR_INSECURE: 'true' MIRROR_NAMESPACE: openstack-mirror MIRROR_REGISTRY_HOST: default-route-openshift-image-registry.apps-crc.testing 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: 18.0-fr5 NEUTRON_COMMIT_HASH: '' NEUTRON_IMG: quay.io/openstack-k8s-operators/neutron-operator-index:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 OPENSTACK_BUNDLE_IMG: quay.io/openstack-k8s-operators/openstack-operator-bundle:18.0-fr5-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:18.0-fr5-latest OPENSTACK_K8S_BRANCH: 18.0-fr5 OPENSTACK_K8S_TAG: 18.0-fr5-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:18.0-fr5-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: 18.0-fr5 OVN_COMMIT_HASH: '' OVN_IMG: quay.io/openstack-k8s-operators/ovn-operator-index:18.0-fr5-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: 18.0-fr5 PLACEMENT_COMMIT_HASH: '' PLACEMENT_IMG: quay.io/openstack-k8s-operators/placement-operator-index:18.0-fr5-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/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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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: 18.0-fr5 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:18.0-fr5-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' WATCHER_BRANCH: '' WATCHER_REPO: /home/zuul/src/github.com/openstack-k8s-operators/watcher-operator tripleo_deploy: 'export REGISTRY_USER:' 2026-03-14 09:07:26,578 p=31980 u=zuul n=ansible | TASK [install_yamls : Generate make targets install_yamls_path={{ cifmw_install_yamls_repo }}, output_directory={{ cifmw_install_yamls_tasks_out }}] *** 2026-03-14 09:07:26,578 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.037) 0:01:29.327 ******** 2026-03-14 09:07:26,578 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.037) 0:01:29.325 ******** 2026-03-14 09:07:26,919 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:26,928 p=31980 u=zuul n=ansible | TASK [install_yamls : Debug generate_make module var=cifmw_generate_makes] ***** 2026-03-14 09:07:26,928 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.350) 0:01:29.677 ******** 2026-03-14 09:07:26,928 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.350) 0:01:29.676 ******** 2026-03-14 09:07:26,948 p=31980 u=zuul n=ansible | ok: [controller] => 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 - mirror_registry - mirror_registry_secure - mirror_registry_ca - mirror_registry_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 - glance_kuttl_run - glance_kuttl - manila_kuttl_run - manila_kuttl - swift_kuttl_run - swift_kuttl - horizon_kuttl_run - horizon_kuttl - openstack_kuttl_prep - openstack_kuttl_run - openstack_kuttl_cleanup - 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 - 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 2026-03-14 09:07:26,955 p=31980 u=zuul n=ansible | TASK [install_yamls : Create the install_yamls parameters file dest={{ cifmw_basedir }}/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] *** 2026-03-14 09:07:26,955 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.026) 0:01:29.704 ******** 2026-03-14 09:07:26,955 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:26 +0000 (0:00:00.026) 0:01:29.702 ******** 2026-03-14 09:07:28,166 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:28,173 p=31980 u=zuul n=ansible | TASK [install_yamls : Create empty cifmw_install_yamls_environment if needed cifmw_install_yamls_environment={}] *** 2026-03-14 09:07:28,173 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:01.218) 0:01:30.922 ******** 2026-03-14 09:07:28,173 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:01.218) 0:01:30.921 ******** 2026-03-14 09:07:28,189 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:28,202 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Set the discovered image vars to empty/null cifmw_discovered_images_dict={}, cifmw_discovered_image_name=None, cifmw_discovered_image_url=None, cifmw_discovered_hash=None, cifmw_discovered_hash_algorithm=None] *** 2026-03-14 09:07:28,202 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.028) 0:01:30.951 ******** 2026-03-14 09:07:28,202 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.028) 0:01:30.949 ******** 2026-03-14 09:07:28,215 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:28,221 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Discover images _raw_params=per-image.yml] ******* 2026-03-14 09:07:28,221 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.019) 0:01:30.970 ******** 2026-03-14 09:07:28,221 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.019) 0:01:30.968 ******** 2026-03-14 09:07:28,244 p=31980 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/discover_latest_image/tasks/per-image.yml for controller => (item={'key': 'default', 'value': {'base_url': 'https://cloud.centos.org/centos/9-stream/x86_64/images/', 'qcow_prefix': 'CentOS-Stream-GenericCloud-', 'images_file': 'CHECKSUM'}}) 2026-03-14 09:07:28,252 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Ensure the current image dict entry has the expected data that=['_expected_keys | difference(_given_keys) | length == 0'], fail_msg=The image discovery request dict's {{ _current_image.key }} entry does not match the expected schema. Requests must have the following keys: {{ _expected_keys }}, this entry had: {{ _given_keys }} See the discover_latest_image role's README for more information.] *** 2026-03-14 09:07:28,252 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.030) 0:01:31.001 ******** 2026-03-14 09:07:28,252 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.030) 0:01:30.999 ******** 2026-03-14 09:07:28,278 p=31980 u=zuul n=ansible | ok: [controller] => changed: false msg: All assertions passed 2026-03-14 09:07:28,286 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Get latest image for the current entry url={{ _current_image.value.base_url }}, image_prefix={{ _current_image.value.qcow_prefix }}, images_file={{ _current_image.value.images_file }}] *** 2026-03-14 09:07:28,286 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.034) 0:01:31.035 ******** 2026-03-14 09:07:28,286 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.034) 0:01:31.034 ******** 2026-03-14 09:07:28,978 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:28,991 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Append the current return value to the discovered images dict cifmw_discovered_images_dict={{ cifmw_discovered_images_dict | combine({_current_image.key: discovered_image.data}) }}, cacheable=True] *** 2026-03-14 09:07:28,991 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.705) 0:01:31.740 ******** 2026-03-14 09:07:28,992 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:28 +0000 (0:00:00.705) 0:01:31.739 ******** 2026-03-14 09:07:29,015 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:29,024 p=31980 u=zuul n=ansible | TASK [discover_latest_image : Export single-image facts if an image with name 'default' was discovered cifmw_discovered_image_name={{ cifmw_discovered_images_dict.default.image_name }}, cifmw_discovered_image_url={{ cifmw_discovered_images_dict.default.image_url }}, cifmw_discovered_hash={{ cifmw_discovered_images_dict.default.hash }}, cifmw_discovered_hash_algorithm={{ cifmw_discovered_images_dict.default.hash_algorithm }}, cacheable=True] *** 2026-03-14 09:07:29,024 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.032) 0:01:31.773 ******** 2026-03-14 09:07:29,024 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.032) 0:01:31.772 ******** 2026-03-14 09:07:29,064 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:07:29,081 p=31980 u=zuul n=ansible | TASK [cifmw_setup : Create artifacts with custom params mode=0644, dest={{ cifmw_basedir }}/artifacts/parameters/custom-params.yml, content={{ ci_framework_params | to_nice_yaml }}] *** 2026-03-14 09:07:29,081 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.056) 0:01:31.830 ******** 2026-03-14 09:07:29,081 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.056) 0:01:31.829 ******** 2026-03-14 09:07:29,750 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:07:29,779 p=31980 u=zuul n=ansible | PLAY [Install dev tools] ******************************************************* 2026-03-14 09:07:29,796 p=31980 u=zuul n=ansible | TASK [Assert that operator_name is set that=['operator_name is defined']] ****** 2026-03-14 09:07:29,797 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.715) 0:01:32.545 ******** 2026-03-14 09:07:29,797 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.715) 0:01:32.544 ******** 2026-03-14 09:07:29,814 p=31980 u=zuul n=ansible | ok: [controller] => changed: false msg: All assertions passed 2026-03-14 09:07:29,821 p=31980 u=zuul n=ansible | TASK [Download install_yamls deps name=install_yamls_makes, tasks_from=make_download_tools] *** 2026-03-14 09:07:29,821 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.024) 0:01:32.570 ******** 2026-03-14 09:07:29,821 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.024) 0:01:32.568 ******** 2026-03-14 09:07:29,850 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_download_tools_env var=make_download_tools_env] *** 2026-03-14 09:07:29,851 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.029) 0:01:32.599 ******** 2026-03-14 09:07:29,851 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.029) 0:01:32.598 ******** 2026-03-14 09:07:29,864 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:29,870 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_download_tools_params var=make_download_tools_params] *** 2026-03-14 09:07:29,871 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.019) 0:01:32.619 ******** 2026-03-14 09:07:29,871 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.019) 0:01:32.618 ******** 2026-03-14 09:07:29,884 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:07:29,892 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Run download_tools output_dir={{ cifmw_basedir }}/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({}))) }}] *** 2026-03-14 09:07:29,892 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.021) 0:01:32.641 ******** 2026-03-14 09:07:29,892 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:07:29 +0000 (0:00:00.021) 0:01:32.640 ******** 2026-03-14 09:07:29,980 p=31980 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_000_run_download.log 2026-03-14 09:08:09,162 p=31980 u=zuul n=ansible | [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ make_download_tools_until | default(true) }} 2026-03-14 09:08:09,163 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:09,179 p=31980 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']] *** 2026-03-14 09:08:09,179 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:39.287) 0:02:11.928 ******** 2026-03-14 09:08:09,179 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:39.287) 0:02:11.927 ******** 2026-03-14 09:08:09,261 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:09,270 p=31980 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.] *** 2026-03-14 09:08:09,270 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.090) 0:02:12.019 ******** 2026-03-14 09:08:09,270 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.090) 0:02:12.018 ******** 2026-03-14 09:08:09,362 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:09,373 p=31980 u=zuul n=ansible | TASK [run_hook : Loop on hooks for pre_infra _raw_params={{ hook.type }}.yml] *** 2026-03-14 09:08:09,373 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.102) 0:02:12.122 ******** 2026-03-14 09:08:09,373 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.102) 0:02:12.121 ******** 2026-03-14 09:08:09,492 p=31980 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/run_hook/tasks/playbook.yml for controller => (item={'name': 'Download needed tools', 'inventory': 'localhost,', 'connection': 'local', 'type': 'playbook', 'source': '/home/zuul/src/github.com/openstack-k8s-operators/install_yamls/devsetup/download_tools.yaml'}) 2026-03-14 09:08:09,506 p=31980 u=zuul n=ansible | TASK [run_hook : Set playbook path for Download needed tools cifmw_basedir={{ _bdir }}, hook_name={{ _hook_name }}, playbook_path={{ _play | realpath }}, log_path={{ _bdir }}/logs/{{ step }}_{{ _hook_name }}.log, extra_vars=-e namespace={{ cifmw_openstack_namespace }} {%- if hook.extra_vars is defined and hook.extra_vars|length > 0 -%} {% for key,value in hook.extra_vars.items() -%} {%- if key == 'file' %} -e "@{{ value }}" {%- else %} -e "{{ key }}={{ value }}" {%- endif %} {%- endfor %} {%- endif %}] *** 2026-03-14 09:08:09,506 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.132) 0:02:12.255 ******** 2026-03-14 09:08:09,506 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.133) 0:02:12.254 ******** 2026-03-14 09:08:09,550 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:09,559 p=31980 u=zuul n=ansible | TASK [run_hook : Get file stat path={{ playbook_path }}] *********************** 2026-03-14 09:08:09,559 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.052) 0:02:12.308 ******** 2026-03-14 09:08:09,559 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.052) 0:02:12.307 ******** 2026-03-14 09:08:09,769 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:09,779 p=31980 u=zuul n=ansible | TASK [run_hook : Fail if playbook doesn't exist msg=Playbook {{ playbook_path }} doesn't seem to exist.] *** 2026-03-14 09:08:09,780 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.220) 0:02:12.528 ******** 2026-03-14 09:08:09,780 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.220) 0:02:12.527 ******** 2026-03-14 09:08:09,791 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:09,799 p=31980 u=zuul n=ansible | TASK [run_hook : Get parameters files paths={{ (cifmw_basedir, 'artifacts/parameters') | path_join }}, file_type=file, patterns=*.yml] *** 2026-03-14 09:08:09,799 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.019) 0:02:12.548 ******** 2026-03-14 09:08:09,799 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.019) 0:02:12.546 ******** 2026-03-14 09:08:09,978 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:09,985 p=31980 u=zuul n=ansible | TASK [run_hook : Add parameters artifacts as extra variables extra_vars={{ extra_vars }} {% for file in cifmw_run_hook_parameters_files.files %} -e "@{{ file.path }}" {%- endfor %}] *** 2026-03-14 09:08:09,985 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.186) 0:02:12.734 ******** 2026-03-14 09:08:09,985 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:09 +0000 (0:00:00.186) 0:02:12.733 ******** 2026-03-14 09:08:10,000 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:10,008 p=31980 u=zuul n=ansible | TASK [run_hook : Ensure log directory exists path={{ log_path | dirname }}, state=directory, mode=0755] *** 2026-03-14 09:08:10,008 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.023) 0:02:12.757 ******** 2026-03-14 09:08:10,008 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.023) 0:02:12.756 ******** 2026-03-14 09:08:10,205 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:10,211 p=31980 u=zuul n=ansible | TASK [run_hook : Ensure artifacts directory exists path={{ cifmw_basedir }}/artifacts, state=directory, mode=0755] *** 2026-03-14 09:08:10,211 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.202) 0:02:12.960 ******** 2026-03-14 09:08:10,211 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.202) 0:02:12.959 ******** 2026-03-14 09:08:10,434 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:10,452 p=31980 u=zuul n=ansible | TASK [run_hook : Run hook without retry - Download needed tools] *************** 2026-03-14 09:08:10,453 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.241) 0:02:13.201 ******** 2026-03-14 09:08:10,453 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:10 +0000 (0:00:00.241) 0:02:13.200 ******** 2026-03-14 09:08:10,589 p=31980 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_001_run_hook_without_retry.log 2026-03-14 09:08:44,254 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:44,261 p=31980 u=zuul n=ansible | TASK [run_hook : Run hook with retry - Download needed tools] ****************** 2026-03-14 09:08:44,261 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:33.808) 0:02:47.010 ******** 2026-03-14 09:08:44,261 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:33.808) 0:02:47.009 ******** 2026-03-14 09:08:44,275 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:44,282 p=31980 u=zuul n=ansible | TASK [run_hook : Check if we have a file path={{ cifmw_basedir }}/artifacts/{{ step }}_{{ hook_name }}.yml] *** 2026-03-14 09:08:44,282 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.020) 0:02:47.031 ******** 2026-03-14 09:08:44,282 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.020) 0:02:47.030 ******** 2026-03-14 09:08:44,475 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:44,488 p=31980 u=zuul n=ansible | TASK [run_hook : Load generated content in main playbook file={{ cifmw_basedir }}/artifacts/{{ step }}_{{ hook_name }}.yml] *** 2026-03-14 09:08:44,488 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.206) 0:02:47.237 ******** 2026-03-14 09:08:44,488 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.206) 0:02:47.236 ******** 2026-03-14 09:08:44,501 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:44,552 p=31980 u=zuul n=ansible | PLAY [Prepare host virtualization] ********************************************* 2026-03-14 09:08:44,576 p=31980 u=zuul n=ansible | TASK [cifmw_setup : Load parameters files dir={{ cifmw_basedir }}/artifacts/parameters] *** 2026-03-14 09:08:44,576 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.087) 0:02:47.325 ******** 2026-03-14 09:08:44,576 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.087) 0:02:47.324 ******** 2026-03-14 09:08:44,647 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:44,658 p=31980 u=zuul n=ansible | TASK [Ensure libvirt is present/configured name=libvirt_manager] *************** 2026-03-14 09:08:44,658 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.082) 0:02:47.407 ******** 2026-03-14 09:08:44,659 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.082) 0:02:47.406 ******** 2026-03-14 09:08:44,676 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:44,685 p=31980 u=zuul n=ansible | TASK [Perpare OpenShift provisioner node name=openshift_provisioner_node] ****** 2026-03-14 09:08:44,685 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.026) 0:02:47.434 ******** 2026-03-14 09:08:44,685 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.026) 0:02:47.433 ******** 2026-03-14 09:08:44,701 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:44,740 p=31980 u=zuul n=ansible | PLAY [Build dataset hook] ****************************************************** 2026-03-14 09:08:44,767 p=31980 u=zuul n=ansible | TASK [cifmw_setup : Load parameters files dir={{ cifmw_basedir }}/artifacts/parameters] *** 2026-03-14 09:08:44,767 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.081) 0:02:47.516 ******** 2026-03-14 09:08:44,767 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.081) 0:02:47.515 ******** 2026-03-14 09:08:44,878 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:44,889 p=31980 u=zuul n=ansible | TASK [networking_mapper : Check for Networking Environment Definition file existence path={{ cifmw_networking_mapper_networking_env_def_path }}] *** 2026-03-14 09:08:44,889 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.121) 0:02:47.638 ******** 2026-03-14 09:08:44,889 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:44 +0000 (0:00:00.121) 0:02:47.636 ******** 2026-03-14 09:08:45,091 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:45,099 p=31980 u=zuul n=ansible | TASK [networking_mapper : Check for Networking Definition file existance that=['_net_env_def_stat.stat.exists'], msg=Ensure that the Networking Environment Definition file exists in {{ cifmw_networking_mapper_networking_env_def_path }}, quiet=True] *** 2026-03-14 09:08:45,099 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.209) 0:02:47.848 ******** 2026-03-14 09:08:45,099 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.209) 0:02:47.846 ******** 2026-03-14 09:08:45,120 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,127 p=31980 u=zuul n=ansible | TASK [networking_mapper : Load the Networking Definition from file path={{ cifmw_networking_mapper_networking_env_def_path }}] *** 2026-03-14 09:08:45,127 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:47.876 ******** 2026-03-14 09:08:45,127 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:47.875 ******** 2026-03-14 09:08:45,149 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,156 p=31980 u=zuul n=ansible | TASK [networking_mapper : Set cifmw_networking_env_definition is present cifmw_networking_env_definition={{ _net_env_def_slurp['content'] | b64decode | from_yaml }}, cacheable=True] *** 2026-03-14 09:08:45,156 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.029) 0:02:47.905 ******** 2026-03-14 09:08:45,156 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.029) 0:02:47.904 ******** 2026-03-14 09:08:45,179 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,190 p=31980 u=zuul n=ansible | TASK [Deploy OCP using Hive name=hive] ***************************************** 2026-03-14 09:08:45,190 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.033) 0:02:47.939 ******** 2026-03-14 09:08:45,190 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.033) 0:02:47.938 ******** 2026-03-14 09:08:45,209 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,219 p=31980 u=zuul n=ansible | TASK [Prepare CRC name=rhol_crc] *********************************************** 2026-03-14 09:08:45,219 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:47.968 ******** 2026-03-14 09:08:45,219 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:47.967 ******** 2026-03-14 09:08:45,236 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,247 p=31980 u=zuul n=ansible | TASK [Deploy OpenShift cluster using dev-scripts name=devscripts] ************** 2026-03-14 09:08:45,247 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.027) 0:02:47.996 ******** 2026-03-14 09:08:45,247 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.027) 0:02:47.994 ******** 2026-03-14 09:08:45,263 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,272 p=31980 u=zuul n=ansible | TASK [openshift_login : Ensure output directory exists path={{ cifmw_openshift_login_basedir }}/artifacts, state=directory, mode=0755] *** 2026-03-14 09:08:45,272 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.025) 0:02:48.021 ******** 2026-03-14 09:08:45,272 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.025) 0:02:48.020 ******** 2026-03-14 09:08:45,472 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:45,479 p=31980 u=zuul n=ansible | TASK [openshift_login : OpenShift login _raw_params=login.yml] ***************** 2026-03-14 09:08:45,479 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.207) 0:02:48.228 ******** 2026-03-14 09:08:45,479 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.207) 0:02:48.227 ******** 2026-03-14 09:08:45,509 p=31980 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/openshift_login/tasks/login.yml for controller 2026-03-14 09:08:45,520 p=31980 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) }}] *** 2026-03-14 09:08:45,520 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.040) 0:02:48.269 ******** 2026-03-14 09:08:45,520 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.040) 0:02:48.267 ******** 2026-03-14 09:08:45,549 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,557 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch user password content src={{ cifmw_openshift_login_password_file | default(cifmw_openshift_password_file) }}] *** 2026-03-14 09:08:45,557 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.037) 0:02:48.306 ******** 2026-03-14 09:08:45,557 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.037) 0:02:48.305 ******** 2026-03-14 09:08:45,586 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,593 p=31980 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] *** 2026-03-14 09:08:45,593 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.036) 0:02:48.342 ******** 2026-03-14 09:08:45,593 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.036) 0:02:48.341 ******** 2026-03-14 09:08:45,612 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,620 p=31980 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] *** 2026-03-14 09:08:45,620 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.026) 0:02:48.369 ******** 2026-03-14 09:08:45,620 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.026) 0:02:48.367 ******** 2026-03-14 09:08:45,654 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:45,660 p=31980 u=zuul n=ansible | TASK [openshift_login : Check if kubeconfig exists path={{ cifmw_openshift_login_kubeconfig }}] *** 2026-03-14 09:08:45,660 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.040) 0:02:48.409 ******** 2026-03-14 09:08:45,660 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.040) 0:02:48.408 ******** 2026-03-14 09:08:45,860 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:45,868 p=31980 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] *** 2026-03-14 09:08:45,869 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.208) 0:02:48.617 ******** 2026-03-14 09:08:45,869 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.208) 0:02:48.616 ******** 2026-03-14 09:08:45,905 p=31980 u=zuul n=ansible | ok: [controller] => changed: false msg: All assertions passed 2026-03-14 09:08:45,912 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch kubeconfig content src={{ cifmw_openshift_login_kubeconfig }}] *** 2026-03-14 09:08:45,912 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.043) 0:02:48.661 ******** 2026-03-14 09:08:45,912 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.043) 0:02:48.660 ******** 2026-03-14 09:08:45,930 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,937 p=31980 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] *** 2026-03-14 09:08:45,937 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.025) 0:02:48.686 ******** 2026-03-14 09:08:45,937 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.025) 0:02:48.685 ******** 2026-03-14 09:08:45,955 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,965 p=31980 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] *** 2026-03-14 09:08:45,965 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:48.714 ******** 2026-03-14 09:08:45,966 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.028) 0:02:48.713 ******** 2026-03-14 09:08:45,987 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:45,997 p=31980 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 }}] *** 2026-03-14 09:08:45,997 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.031) 0:02:48.746 ******** 2026-03-14 09:08:45,997 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:45 +0000 (0:00:00.031) 0:02:48.745 ******** 2026-03-14 09:08:46,024 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:46,034 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch token _raw_params=try_login.yml] ***************** 2026-03-14 09:08:46,034 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.036) 0:02:48.783 ******** 2026-03-14 09:08:46,034 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.036) 0:02:48.781 ******** 2026-03-14 09:08:46,061 p=31980 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/openshift_login/tasks/try_login.yml for controller 2026-03-14 09:08:46,072 p=31980 u=zuul n=ansible | TASK [openshift_login : Try get OpenShift access token _raw_params=oc whoami -t] *** 2026-03-14 09:08:46,072 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.038) 0:02:48.821 ******** 2026-03-14 09:08:46,072 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.038) 0:02:48.820 ******** 2026-03-14 09:08:46,087 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:46,094 p=31980 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 %}] *** 2026-03-14 09:08:46,094 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.021) 0:02:48.843 ******** 2026-03-14 09:08:46,094 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.021) 0:02:48.842 ******** 2026-03-14 09:08:46,213 p=31980 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_002_fetch_openshift.log 2026-03-14 09:08:46,714 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:46,728 p=31980 u=zuul n=ansible | TASK [openshift_login : Ensure kubeconfig is provided that=cifmw_openshift_login_kubeconfig != ""] *** 2026-03-14 09:08:46,728 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.633) 0:02:49.477 ******** 2026-03-14 09:08:46,728 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.633) 0:02:49.476 ******** 2026-03-14 09:08:46,755 p=31980 u=zuul n=ansible | ok: [controller] => changed: false msg: All assertions passed 2026-03-14 09:08:46,769 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch new OpenShift access token _raw_params=oc whoami -t] *** 2026-03-14 09:08:46,770 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.041) 0:02:49.518 ******** 2026-03-14 09:08:46,770 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:46 +0000 (0:00:00.041) 0:02:49.517 ******** 2026-03-14 09:08:47,076 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:47,083 p=31980 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] *** 2026-03-14 09:08:47,083 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.313) 0:02:49.832 ******** 2026-03-14 09:08:47,083 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.313) 0:02:49.830 ******** 2026-03-14 09:08:47,107 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:47,113 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift API URL _raw_params=oc whoami --show-server=true] *** 2026-03-14 09:08:47,114 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.030) 0:02:49.862 ******** 2026-03-14 09:08:47,114 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.030) 0:02:49.861 ******** 2026-03-14 09:08:47,433 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:47,442 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift kubeconfig context _raw_params=oc whoami -c] *** 2026-03-14 09:08:47,442 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.328) 0:02:50.191 ******** 2026-03-14 09:08:47,442 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.328) 0:02:50.190 ******** 2026-03-14 09:08:47,734 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:47,741 p=31980 u=zuul n=ansible | TASK [openshift_login : Fetch OpenShift current user _raw_params=oc whoami] **** 2026-03-14 09:08:47,741 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.299) 0:02:50.490 ******** 2026-03-14 09:08:47,741 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:47 +0000 (0:00:00.299) 0:02:50.489 ******** 2026-03-14 09:08:48,043 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:48,050 p=31980 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] *** 2026-03-14 09:08:48,050 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.309) 0:02:50.799 ******** 2026-03-14 09:08:48,050 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.309) 0:02:50.798 ******** 2026-03-14 09:08:48,086 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:48,094 p=31980 u=zuul n=ansible | TASK [openshift_login : Create the openshift_login parameters file dest={{ cifmw_basedir }}/artifacts/parameters/openshift-login-params.yml, content={{ cifmw_openshift_login_params_content | from_yaml | to_nice_yaml }}, mode=0600] *** 2026-03-14 09:08:48,094 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.043) 0:02:50.843 ******** 2026-03-14 09:08:48,094 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.043) 0:02:50.841 ******** 2026-03-14 09:08:48,607 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:48,615 p=31980 u=zuul n=ansible | TASK [openshift_login : Read the install yamls parameters file path={{ cifmw_basedir }}/artifacts/parameters/install-yamls-params.yml] *** 2026-03-14 09:08:48,615 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.521) 0:02:51.364 ******** 2026-03-14 09:08:48,615 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.521) 0:02:51.363 ******** 2026-03-14 09:08:48,929 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:48,936 p=31980 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 }}/artifacts/parameters/install-yamls-params.yml, mode=0600] *** 2026-03-14 09:08:48,936 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.321) 0:02:51.685 ******** 2026-03-14 09:08:48,936 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:48 +0000 (0:00:00.321) 0:02:51.684 ******** 2026-03-14 09:08:49,564 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:49,577 p=31980 u=zuul n=ansible | TASK [openshift_setup : Ensure output directory exists path={{ cifmw_openshift_setup_basedir }}/artifacts, state=directory, mode=0755] *** 2026-03-14 09:08:49,577 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.640) 0:02:52.326 ******** 2026-03-14 09:08:49,577 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.640) 0:02:52.324 ******** 2026-03-14 09:08:49,771 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:49,778 p=31980 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 }}] *** 2026-03-14 09:08:49,779 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.201) 0:02:52.527 ******** 2026-03-14 09:08:49,779 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.201) 0:02:52.526 ******** 2026-03-14 09:08:49,807 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:49,821 p=31980 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] *** 2026-03-14 09:08:49,821 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.042) 0:02:52.570 ******** 2026-03-14 09:08:49,821 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:49 +0000 (0:00:00.042) 0:02:52.569 ******** 2026-03-14 09:08:50,867 p=31980 u=zuul n=ansible | changed: [controller] => (item=openstack) 2026-03-14 09:08:51,592 p=31980 u=zuul n=ansible | changed: [controller] => (item=openstack-operators) 2026-03-14 09:08:51,602 p=31980 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] *** 2026-03-14 09:08:51,602 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:01.781) 0:02:54.351 ******** 2026-03-14 09:08:51,602 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:01.781) 0:02:54.350 ******** 2026-03-14 09:08:51,614 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,622 p=31980 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'}}] *** 2026-03-14 09:08:51,622 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.019) 0:02:54.371 ******** 2026-03-14 09:08:51,622 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.019) 0:02:54.370 ******** 2026-03-14 09:08:51,638 p=31980 u=zuul n=ansible | skipping: [controller] => (item=openstack) 2026-03-14 09:08:51,639 p=31980 u=zuul n=ansible | skipping: [controller] => (item=openstack-operators) 2026-03-14 09:08:51,639 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,646 p=31980 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'}] *** 2026-03-14 09:08:51,646 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.395 ******** 2026-03-14 09:08:51,646 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.394 ******** 2026-03-14 09:08:51,663 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,671 p=31980 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 }}] *** 2026-03-14 09:08:51,671 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.420 ******** 2026-03-14 09:08:51,671 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.418 ******** 2026-03-14 09:08:51,687 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,695 p=31980 u=zuul n=ansible | TASK [Ensure we have custom CA installed on host role=install_ca] ************** 2026-03-14 09:08:51,695 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.444 ******** 2026-03-14 09:08:51,695 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.443 ******** 2026-03-14 09:08:51,711 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,719 p=31980 u=zuul n=ansible | TASK [openshift_setup : Update ca bundle _raw_params=update-ca-trust extract] *** 2026-03-14 09:08:51,720 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.468 ******** 2026-03-14 09:08:51,720 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.024) 0:02:54.467 ******** 2026-03-14 09:08:51,735 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,742 p=31980 u=zuul n=ansible | TASK [openshift_setup : Slurp CAs file src={{ cifmw_openshift_setup_ca_bundle_path }}] *** 2026-03-14 09:08:51,742 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.022) 0:02:54.491 ******** 2026-03-14 09:08:51,742 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.022) 0:02:54.489 ******** 2026-03-14 09:08:51,758 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,764 p=31980 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 }}'}] *** 2026-03-14 09:08:51,764 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.022) 0:02:54.513 ******** 2026-03-14 09:08:51,764 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.022) 0:02:54.511 ******** 2026-03-14 09:08:51,777 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,784 p=31980 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'}}}] *** 2026-03-14 09:08:51,784 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.020) 0:02:54.533 ******** 2026-03-14 09:08:51,784 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.020) 0:02:54.532 ******** 2026-03-14 09:08:51,800 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,806 p=31980 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 }}'}}}] *** 2026-03-14 09:08:51,806 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.021) 0:02:54.555 ******** 2026-03-14 09:08:51,806 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.021) 0:02:54.554 ******** 2026-03-14 09:08:51,821 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,828 p=31980 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 }}'}}] *** 2026-03-14 09:08:51,828 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.021) 0:02:54.577 ******** 2026-03-14 09:08:51,828 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.021) 0:02:54.576 ******** 2026-03-14 09:08:51,846 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:51,853 p=31980 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] *** 2026-03-14 09:08:51,853 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.025) 0:02:54.602 ******** 2026-03-14 09:08:51,853 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:51 +0000 (0:00:00.025) 0:02:54.601 ******** 2026-03-14 09:08:52,783 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:08:52,796 p=31980 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'}]] *** 2026-03-14 09:08:52,796 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:52 +0000 (0:00:00.942) 0:02:55.545 ******** 2026-03-14 09:08:52,796 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:52 +0000 (0:00:00.942) 0:02:55.543 ******** 2026-03-14 09:08:53,678 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:53,686 p=31980 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': '{{ cifmw_openshift_setup_samples_registry }}'}]] *** 2026-03-14 09:08:53,686 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:53 +0000 (0:00:00.890) 0:02:56.435 ******** 2026-03-14 09:08:53,686 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:53 +0000 (0:00:00.890) 0:02:56.434 ******** 2026-03-14 09:08:54,652 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:54,662 p=31980 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] *** 2026-03-14 09:08:54,663 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.976) 0:02:57.411 ******** 2026-03-14 09:08:54,663 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.976) 0:02:57.410 ******** 2026-03-14 09:08:54,685 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:54,699 p=31980 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] *** 2026-03-14 09:08:54,700 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.037) 0:02:57.449 ******** 2026-03-14 09:08:54,700 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.037) 0:02:57.447 ******** 2026-03-14 09:08:54,713 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:08:54,732 p=31980 u=zuul n=ansible | TASK [Deploy Observability operator. name=openshift_obs] *********************** 2026-03-14 09:08:54,733 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.032) 0:02:57.481 ******** 2026-03-14 09:08:54,733 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.032) 0:02:57.480 ******** 2026-03-14 09:08:54,821 p=31980 u=zuul n=ansible | TASK [openshift_obs : Install cluster observability operator. definition={{cifmw_openshift_obs_definition }}, kubeconfig={{ cifmw_openshift_kubeconfig }}, state=present] *** 2026-03-14 09:08:54,822 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.088) 0:02:57.570 ******** 2026-03-14 09:08:54,822 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:54 +0000 (0:00:00.088) 0:02:57.569 ******** 2026-03-14 09:08:56,291 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:08:56,307 p=31980 u=zuul n=ansible | TASK [openshift_obs : Wait for observability operator deployment kind=Deployment, namespace=openshift-operators, name=observability-operator, wait=True, wait_timeout=300, wait_condition={'type': 'Available', 'status': 'True'}, kubeconfig={{ cifmw_openshift_kubeconfig }}] *** 2026-03-14 09:08:56,307 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:56 +0000 (0:00:01.485) 0:02:59.056 ******** 2026-03-14 09:08:56,308 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:08:56 +0000 (0:00:01.485) 0:02:59.055 ******** 2026-03-14 09:09:48,180 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:48,190 p=31980 u=zuul n=ansible | TASK [openshift_obs : Wait for observability-operator pod kind=Pod, namespace=openshift-operators, label_selectors=['app.kubernetes.io/name = observability-operator'], wait=True, wait_timeout=300, wait_condition={'type': 'Ready', 'status': 'True'}, kubeconfig={{ cifmw_openshift_kubeconfig }}] *** 2026-03-14 09:09:48,190 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:51.882) 0:03:50.939 ******** 2026-03-14 09:09:48,190 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:51.882) 0:03:50.938 ******** 2026-03-14 09:09:48,898 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:48,913 p=31980 u=zuul n=ansible | TASK [Deploy Metal3 BMHs name=deploy_bmh] ************************************** 2026-03-14 09:09:48,913 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.722) 0:03:51.662 ******** 2026-03-14 09:09:48,913 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.722) 0:03:51.660 ******** 2026-03-14 09:09:48,928 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:48,935 p=31980 u=zuul n=ansible | TASK [Install certmanager operator role name=cert_manager] ********************* 2026-03-14 09:09:48,935 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.021) 0:03:51.684 ******** 2026-03-14 09:09:48,935 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.021) 0:03:51.682 ******** 2026-03-14 09:09:48,950 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:48,957 p=31980 u=zuul n=ansible | TASK [Configure hosts networking using nmstate name=ci_nmstate] **************** 2026-03-14 09:09:48,957 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.022) 0:03:51.706 ******** 2026-03-14 09:09:48,957 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.022) 0:03:51.705 ******** 2026-03-14 09:09:48,974 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:48,981 p=31980 u=zuul n=ansible | TASK [Configure multus networks name=ci_multus] ******************************** 2026-03-14 09:09:48,981 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.023) 0:03:51.730 ******** 2026-03-14 09:09:48,981 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:48 +0000 (0:00:00.023) 0:03:51.729 ******** 2026-03-14 09:09:48,995 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:49,001 p=31980 u=zuul n=ansible | TASK [Deploy Sushy Emulator service pod name=sushy_emulator] ******************* 2026-03-14 09:09:49,002 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.020) 0:03:51.750 ******** 2026-03-14 09:09:49,002 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.020) 0:03:51.749 ******** 2026-03-14 09:09:49,014 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:49,020 p=31980 u=zuul n=ansible | TASK [Setup Libvirt on controller name=libvirt_manager] ************************ 2026-03-14 09:09:49,020 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.018) 0:03:51.769 ******** 2026-03-14 09:09:49,021 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.018) 0:03:51.768 ******** 2026-03-14 09:09:49,033 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:49,039 p=31980 u=zuul n=ansible | TASK [Prepare container package builder name=pkg_build] ************************ 2026-03-14 09:09:49,039 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.019) 0:03:51.788 ******** 2026-03-14 09:09:49,040 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.019) 0:03:51.787 ******** 2026-03-14 09:09:49,055 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:49,062 p=31980 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']] *** 2026-03-14 09:09:49,062 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.022) 0:03:51.811 ******** 2026-03-14 09:09:49,062 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.022) 0:03:51.809 ******** 2026-03-14 09:09:49,109 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:49,115 p=31980 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.] *** 2026-03-14 09:09:49,115 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.053) 0:03:51.864 ******** 2026-03-14 09:09:49,116 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.053) 0:03:51.863 ******** 2026-03-14 09:09:49,205 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:49,213 p=31980 u=zuul n=ansible | TASK [run_hook : Loop on hooks for post_infra _raw_params={{ hook.type }}.yml] *** 2026-03-14 09:09:49,213 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.097) 0:03:51.962 ******** 2026-03-14 09:09:49,213 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.097) 0:03:51.961 ******** 2026-03-14 09:09:49,301 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:49,318 p=31980 u=zuul n=ansible | TASK [Load parameters dir={{ item }}] ****************************************** 2026-03-14 09:09:49,319 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.105) 0:03:52.067 ******** 2026-03-14 09:09:49,319 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.105) 0:03:52.066 ******** 2026-03-14 09:09:49,358 p=31980 u=zuul n=ansible | ok: [controller] => (item=/home/zuul/ci-framework-data/artifacts/parameters) 2026-03-14 09:09:49,361 p=31980 u=zuul n=ansible | ok: [controller] => (item=/etc/ci/env) 2026-03-14 09:09:49,375 p=31980 u=zuul n=ansible | TASK [Ensure that the isolated net was configured for crc that=['crc_ci_bootstrap_networks_out is defined', 'crc_ci_bootstrap_networks_out[_crc_hostname] is defined', "crc_ci_bootstrap_networks_out[_crc_hostname]['default'] is defined"]] *** 2026-03-14 09:09:49,375 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.056) 0:03:52.124 ******** 2026-03-14 09:09:49,375 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.056) 0:03:52.123 ******** 2026-03-14 09:09:49,399 p=31980 u=zuul n=ansible | ok: [controller] => changed: false msg: All assertions passed 2026-03-14 09:09:49,406 p=31980 u=zuul n=ansible | TASK [Set facts for further usage within the framework cifmw_edpm_prepare_extra_vars={'NNCP_INTERFACE': '{{ crc_ci_bootstrap_networks_out.crc.default.iface }}', 'NETWORK_MTU': '{{ crc_ci_bootstrap_networks_out.crc.default.mtu }}', 'NNCP_DNS_SERVER': "{{\n cifmw_nncp_dns_server |\n default(crc_ci_bootstrap_networks_out[_crc_hostname].default.ip) |\n split('/') | first\n}}"}] *** 2026-03-14 09:09:49,406 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.030) 0:03:52.155 ******** 2026-03-14 09:09:49,406 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.030) 0:03:52.153 ******** 2026-03-14 09:09:49,425 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:49,459 p=31980 u=zuul n=ansible | PLAY [Deploy Openstack Operators] ********************************************** 2026-03-14 09:09:49,505 p=31980 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}) }}] *** 2026-03-14 09:09:49,505 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.099) 0:03:52.254 ******** 2026-03-14 09:09:49,505 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.099) 0:03:52.253 ******** 2026-03-14 09:09:49,531 p=31980 u=zuul n=ansible | ok: [controller] => (item={'key': 'openstack-operator', 'value': {'git_commit_hash': '9a24db8c31721f3ef0623b08a5d9140ff7ecb702', 'git_src_dir': '/home/zuul-worker/src/github.com/openstack-k8s-operators/openstack-operator', 'image': '38.102.83.153:5001/openstack-k8s-operators/openstack-operator:9a24db8c31721f3ef0623b08a5d9140ff7ecb702', 'image_bundle': '38.102.83.153:5001/openstack-k8s-operators/openstack-operator-bundle:9a24db8c31721f3ef0623b08a5d9140ff7ecb702', 'image_catalog': '38.102.83.153:5001/openstack-k8s-operators/openstack-operator-index:9a24db8c31721f3ef0623b08a5d9140ff7ecb702'}}) 2026-03-14 09:09:49,540 p=31980 u=zuul n=ansible | ok: [controller] => (item={'key': 'watcher-operator', 'value': {'git_commit_hash': '3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'git_src_dir': '/home/zuul-worker/src/github.com/openstack-k8s-operators/watcher-operator', 'image': '38.102.83.153:5001/openstack-k8s-operators/watcher-operator:3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'image_bundle': '38.102.83.153:5001/openstack-k8s-operators/watcher-operator-bundle:3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'image_catalog': '38.102.83.153:5001/openstack-k8s-operators/watcher-operator-index:3fad4a9eb56718f26ce2ec186bb570f2695f01c3'}}) 2026-03-14 09:09:49,548 p=31980 u=zuul n=ansible | TASK [Set install_yamls Makefile environment variables cifmw_edpm_prepare_common_env={{ cifmw_install_yamls_environment | combine({'PATH': cifmw_path}) | combine(cifmw_edpm_prepare_extra_vars | default({})) }}, cifmw_edpm_prepare_operators_build_output={{ operators_build_output }}, cifmw_edpm_prepare_make_openstack_env={{ _local_operators_indexes | combine(_openstack_operator_images) }}] *** 2026-03-14 09:09:49,548 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.042) 0:03:52.297 ******** 2026-03-14 09:09:49,548 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.042) 0:03:52.295 ******** 2026-03-14 09:09:49,567 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:09:49,574 p=31980 u=zuul n=ansible | TASK [detect if openstack operator is installed _raw_params=oc get sub --ignore-not-found=true -n openstack-operators -o name openstack-operator] *** 2026-03-14 09:09:49,574 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.025) 0:03:52.323 ******** 2026-03-14 09:09:49,574 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.025) 0:03:52.321 ******** 2026-03-14 09:09:49,952 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:09:49,959 p=31980 u=zuul n=ansible | TASK [Install openstack operator and wait for the csv to succeed name=install_yamls_makes, tasks_from=make_openstack_init] *** 2026-03-14 09:09:49,959 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.385) 0:03:52.708 ******** 2026-03-14 09:09:49,959 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.385) 0:03:52.706 ******** 2026-03-14 09:09:49,985 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_openstack_init_env var=make_openstack_init_env] *** 2026-03-14 09:09:49,986 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.026) 0:03:52.734 ******** 2026-03-14 09:09:49,986 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:49 +0000 (0:00:00.026) 0:03:52.733 ******** 2026-03-14 09:09:50,016 p=31980 u=zuul n=ansible | ok: [controller] => make_openstack_init_env: BMO_SETUP: false CHECKOUT_FROM_OPENSTACK_REF: 'true' KUBECONFIG: /home/zuul/.crc/machines/crc/kubeconfig NETWORK_MTU: 1500 NNCP_DNS_SERVER: 192.168.122.10 NNCP_INTERFACE: ens7 OPENSTACK_BUNDLE_IMG: 38.102.83.153:5001/openstack-k8s-operators/openstack-operator-bundle:9a24db8c31721f3ef0623b08a5d9140ff7ecb702 OPENSTACK_IMG: 38.102.83.153:5001/openstack-k8s-operators/openstack-operator-index:9a24db8c31721f3ef0623b08a5d9140ff7ecb702 OPENSTACK_K8S_BRANCH: 18.0-fr5 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 WATCHER_BRANCH: '' WATCHER_IMG: 38.102.83.153:5001/openstack-k8s-operators/watcher-operator-index:3fad4a9eb56718f26ce2ec186bb570f2695f01c3 WATCHER_REPO: /home/zuul/src/github.com/openstack-k8s-operators/watcher-operator 2026-03-14 09:09:50,024 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Debug make_openstack_init_params var=make_openstack_init_params] *** 2026-03-14 09:09:50,024 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:50 +0000 (0:00:00.038) 0:03:52.773 ******** 2026-03-14 09:09:50,024 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:50 +0000 (0:00:00.038) 0:03:52.772 ******** 2026-03-14 09:09:50,044 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:09:50,051 p=31980 u=zuul n=ansible | TASK [install_yamls_makes : Run openstack_init output_dir={{ cifmw_basedir }}/artifacts, chdir=/home/zuul/src/github.com/openstack-k8s-operators/install_yamls, script=make openstack_init, dry_run={{ make_openstack_init_dryrun|default(false)|bool }}, extra_args={{ dict((make_openstack_init_env|default({})), **(make_openstack_init_params|default({}))) }}] *** 2026-03-14 09:09:50,051 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:50 +0000 (0:00:00.027) 0:03:52.800 ******** 2026-03-14 09:09:50,051 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:09:50 +0000 (0:00:00.027) 0:03:52.799 ******** 2026-03-14 09:09:50,161 p=31980 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_003_run_openstack.log 2026-03-14 09:15:20,737 p=31980 u=zuul n=ansible | [WARNING]: conditional statements should not include jinja2 templating delimiters such as {{ }} or {% %}. Found: {{ make_openstack_init_until | default(true) }} 2026-03-14 09:15:20,739 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:15:20,751 p=31980 u=zuul n=ansible | TASK [Run hooks after installing openstack name=run_hook] ********************** 2026-03-14 09:15:20,751 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:05:30.699) 0:09:23.500 ******** 2026-03-14 09:15:20,751 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:05:30.699) 0:09:23.499 ******** 2026-03-14 09:15:20,780 p=31980 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']] *** 2026-03-14 09:15:20,780 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.029) 0:09:23.529 ******** 2026-03-14 09:15:20,780 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.029) 0:09:23.528 ******** 2026-03-14 09:15:20,852 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:20,859 p=31980 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.] *** 2026-03-14 09:15:20,859 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.078) 0:09:23.608 ******** 2026-03-14 09:15:20,859 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.078) 0:09:23.606 ******** 2026-03-14 09:15:20,954 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:20,962 p=31980 u=zuul n=ansible | TASK [run_hook : Loop on hooks for post_install_operators_kuttl_from_operator _raw_params={{ hook.type }}.yml] *** 2026-03-14 09:15:20,962 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.103) 0:09:23.711 ******** 2026-03-14 09:15:20,962 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:20 +0000 (0:00:00.103) 0:09:23.710 ******** 2026-03-14 09:15:21,097 p=31980 u=zuul n=ansible | included: /home/zuul/src/github.com/openstack-k8s-operators/ci-framework/roles/run_hook/tasks/playbook.yml for controller => (item={'name': 'Deploy watcher operator', 'type': 'playbook', 'source': '/home/zuul/src/github.com/openstack-k8s-operators/watcher-operator/ci/playbooks/deploy_watcher_operator.yaml', 'extra_vars': {'content_provider_os_registry_url': '38.102.83.153:5001/podified-master-centos10', 'watcher_catalog_image': '38.102.83.153:5001/openstack-k8s-operators/watcher-operator-index:3fad4a9eb56718f26ce2ec186bb570f2695f01c3', 'watcher_services_tag': 'watcher_latest', 'watcher_repo': '/home/zuul/src/github.com/openstack-k8s-operators/watcher-operator'}}) 2026-03-14 09:15:21,113 p=31980 u=zuul n=ansible | TASK [run_hook : Set playbook path for Deploy watcher operator cifmw_basedir={{ _bdir }}, hook_name={{ _hook_name }}, playbook_path={{ _play | realpath }}, log_path={{ _bdir }}/logs/{{ step }}_{{ _hook_name }}.log, extra_vars=-e namespace={{ cifmw_openstack_namespace }} {%- if hook.extra_vars is defined and hook.extra_vars|length > 0 -%} {% for key,value in hook.extra_vars.items() -%} {%- if key == 'file' %} -e "@{{ value }}" {%- else %} -e "{{ key }}={{ value }}" {%- endif %} {%- endfor %} {%- endif %}] *** 2026-03-14 09:15:21,113 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.150) 0:09:23.862 ******** 2026-03-14 09:15:21,113 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.150) 0:09:23.861 ******** 2026-03-14 09:15:21,152 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:21,159 p=31980 u=zuul n=ansible | TASK [run_hook : Get file stat path={{ playbook_path }}] *********************** 2026-03-14 09:15:21,159 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.045) 0:09:23.908 ******** 2026-03-14 09:15:21,159 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.045) 0:09:23.906 ******** 2026-03-14 09:15:21,361 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:21,371 p=31980 u=zuul n=ansible | TASK [run_hook : Fail if playbook doesn't exist msg=Playbook {{ playbook_path }} doesn't seem to exist.] *** 2026-03-14 09:15:21,371 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.212) 0:09:24.120 ******** 2026-03-14 09:15:21,371 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.212) 0:09:24.118 ******** 2026-03-14 09:15:21,385 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:15:21,393 p=31980 u=zuul n=ansible | TASK [run_hook : Get parameters files paths={{ (cifmw_basedir, 'artifacts/parameters') | path_join }}, file_type=file, patterns=*.yml] *** 2026-03-14 09:15:21,393 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.022) 0:09:24.142 ******** 2026-03-14 09:15:21,393 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.022) 0:09:24.141 ******** 2026-03-14 09:15:21,593 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:21,603 p=31980 u=zuul n=ansible | TASK [run_hook : Add parameters artifacts as extra variables extra_vars={{ extra_vars }} {% for file in cifmw_run_hook_parameters_files.files %} -e "@{{ file.path }}" {%- endfor %}] *** 2026-03-14 09:15:21,603 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.209) 0:09:24.352 ******** 2026-03-14 09:15:21,603 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.209) 0:09:24.351 ******** 2026-03-14 09:15:21,621 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:21,631 p=31980 u=zuul n=ansible | TASK [run_hook : Ensure log directory exists path={{ log_path | dirname }}, state=directory, mode=0755] *** 2026-03-14 09:15:21,632 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.028) 0:09:24.380 ******** 2026-03-14 09:15:21,632 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.028) 0:09:24.379 ******** 2026-03-14 09:15:21,851 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:21,858 p=31980 u=zuul n=ansible | TASK [run_hook : Ensure artifacts directory exists path={{ cifmw_basedir }}/artifacts, state=directory, mode=0755] *** 2026-03-14 09:15:21,858 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.226) 0:09:24.607 ******** 2026-03-14 09:15:21,858 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:21 +0000 (0:00:00.226) 0:09:24.606 ******** 2026-03-14 09:15:22,105 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:15:22,118 p=31980 u=zuul n=ansible | TASK [run_hook : Run hook without retry - Deploy watcher operator] ************* 2026-03-14 09:15:22,118 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:22 +0000 (0:00:00.259) 0:09:24.867 ******** 2026-03-14 09:15:22,118 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:15:22 +0000 (0:00:00.259) 0:09:24.865 ******** 2026-03-14 09:15:22,252 p=31980 u=zuul n=ansible | Follow script's output here: /home/zuul/ci-framework-data/logs/ci_script_004_run_hook_without_retry_deploy.log 2026-03-14 09:16:23,361 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:16:23,368 p=31980 u=zuul n=ansible | TASK [run_hook : Run hook with retry - Deploy watcher operator] **************** 2026-03-14 09:16:23,368 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:01:01.250) 0:10:26.117 ******** 2026-03-14 09:16:23,368 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:01:01.250) 0:10:26.116 ******** 2026-03-14 09:16:23,383 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:16:23,391 p=31980 u=zuul n=ansible | TASK [run_hook : Check if we have a file path={{ cifmw_basedir }}/artifacts/{{ step }}_{{ hook_name }}.yml] *** 2026-03-14 09:16:23,391 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.022) 0:10:26.140 ******** 2026-03-14 09:16:23,391 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.022) 0:10:26.138 ******** 2026-03-14 09:16:23,615 p=31980 u=zuul n=ansible | ok: [controller] 2026-03-14 09:16:23,625 p=31980 u=zuul n=ansible | TASK [run_hook : Load generated content in main playbook file={{ cifmw_basedir }}/artifacts/{{ step }}_{{ hook_name }}.yml] *** 2026-03-14 09:16:23,625 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.234) 0:10:26.374 ******** 2026-03-14 09:16:23,625 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.234) 0:10:26.373 ******** 2026-03-14 09:16:23,640 p=31980 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:16:23,655 p=31980 u=zuul n=ansible | TASK [install kuttl test_suite dependencies chdir={{ ansible_user_dir }}/{{ operator_basedir }}, _raw_params=make kuttl-test-prep] *** 2026-03-14 09:16:23,655 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.030) 0:10:26.404 ******** 2026-03-14 09:16:23,655 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:16:23 +0000 (0:00:00.030) 0:10:26.403 ******** 2026-03-14 09:19:16,081 p=31980 u=zuul n=ansible | changed: [controller] 2026-03-14 09:19:16,115 p=31980 u=zuul n=ansible | PLAY RECAP ********************************************************************* 2026-03-14 09:19:16,115 p=31980 u=zuul n=ansible | controller : ok=117 changed=40 unreachable=0 failed=0 skipped=80 rescued=0 ignored=1 2026-03-14 09:19:16,115 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:19:16 +0000 (0:02:52.460) 0:13:18.864 ******** 2026-03-14 09:19:16,115 p=31980 u=zuul n=ansible | =============================================================================== 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | install_yamls_makes : Run openstack_init ------------------------------ 330.70s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | install kuttl test_suite dependencies --------------------------------- 172.46s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | run_hook : Run hook without retry - Deploy watcher operator ------------ 61.25s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | ci_setup : Install needed packages ------------------------------------- 60.52s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_obs : Wait for observability operator deployment ------------- 51.88s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | install_yamls_makes : Run download_tools ------------------------------- 39.29s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | run_hook : Run hook without retry - Download needed tools -------------- 33.81s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | repo_setup : Initialize python venv and install requirements ------------ 8.43s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | ci_setup : Install openshift client ------------------------------------- 5.26s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_setup : Create required namespaces ---------------------------- 1.78s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_obs : Install cluster observability operator. ----------------- 1.49s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | install_yamls : Create the install_yamls parameters file ---------------- 1.22s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | Gathering Facts --------------------------------------------------------- 1.17s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | ci_setup : Manage directories ------------------------------------------- 1.11s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_setup : Patch samples registry configuration ------------------ 0.98s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | repo_setup : Make sure git-core package is installed -------------------- 0.96s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_setup : Gather network.operator info -------------------------- 0.94s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | repo_setup : Get repo-setup repository ---------------------------------- 0.93s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | openshift_setup : Patch network operator -------------------------------- 0.89s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | repo_setup : Install repo-setup package --------------------------------- 0.86s 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | Saturday 14 March 2026 09:19:16 +0000 (0:02:52.461) 0:13:18.864 ******** 2026-03-14 09:19:16,116 p=31980 u=zuul n=ansible | =============================================================================== 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | install_yamls_makes --------------------------------------------------- 370.09s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ansible.builtin.command ----------------------------------------------- 172.85s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | run_hook --------------------------------------------------------------- 98.53s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ci_setup --------------------------------------------------------------- 68.20s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | openshift_obs ---------------------------------------------------------- 54.09s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | repo_setup ------------------------------------------------------------- 16.73s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | openshift_setup --------------------------------------------------------- 5.16s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | openshift_login --------------------------------------------------------- 4.30s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | install_yamls ----------------------------------------------------------- 4.08s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | cifmw_setup ------------------------------------------------------------- 1.62s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | gather_facts ------------------------------------------------------------ 1.17s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | discover_latest_image --------------------------------------------------- 0.88s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | install_ca -------------------------------------------------------------- 0.44s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | networking_mapper ------------------------------------------------------- 0.30s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ansible.builtin.set_fact ------------------------------------------------ 0.17s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ansible.builtin.include_role -------------------------------------------- 0.09s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ansible.builtin.include_vars -------------------------------------------- 0.06s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ansible.builtin.assert -------------------------------------------------- 0.05s 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-03-14 09:19:16,117 p=31980 u=zuul n=ansible | total ----------------------------------------------------------------- 798.81s 2026-03-14 09:19:18,321 p=40887 u=zuul n=ansible | PLAY [controller] ************************************************************** 2026-03-14 09:19:18,351 p=40887 u=zuul n=ansible | TASK [Run hooks before running kuttl tests name=run_hook] ********************** 2026-03-14 09:19:18,351 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.046) 0:00:00.046 ******** 2026-03-14 09:19:18,351 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.045) 0:00:00.045 ******** 2026-03-14 09:19:18,385 p=40887 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']] *** 2026-03-14 09:19:18,386 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.034) 0:00:00.081 ******** 2026-03-14 09:19:18,386 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.034) 0:00:00.079 ******** 2026-03-14 09:19:18,444 p=40887 u=zuul n=ansible | ok: [controller] 2026-03-14 09:19:18,455 p=40887 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.] *** 2026-03-14 09:19:18,455 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.069) 0:00:00.150 ******** 2026-03-14 09:19:18,455 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.069) 0:00:00.149 ******** 2026-03-14 09:19:18,552 p=40887 u=zuul n=ansible | ok: [controller] 2026-03-14 09:19:18,561 p=40887 u=zuul n=ansible | TASK [run_hook : Loop on hooks for pre_kuttl_from_operator _raw_params={{ hook.type }}.yml] *** 2026-03-14 09:19:18,561 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.106) 0:00:00.257 ******** 2026-03-14 09:19:18,562 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.106) 0:00:00.255 ******** 2026-03-14 09:19:18,687 p=40887 u=zuul n=ansible | skipping: [controller] 2026-03-14 09:19:18,707 p=40887 u=zuul n=ansible | TASK [run kuttl test suite from operator Makefile chdir={{ ansible_user_dir }}/{{ operator_basedir }}, _raw_params=make kuttl-test-run] *** 2026-03-14 09:19:18,707 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.145) 0:00:00.403 ******** 2026-03-14 09:19:18,707 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:19:18 +0000 (0:00:00.145) 0:00:00.401 ******** 2026-03-14 09:44:27,438 p=40887 u=zuul n=ansible | fatal: [controller]: FAILED! => changed: true cmd: - make - kuttl-test-run delta: '0:25:07.262437' end: '2026-03-14 09:44:26.323887' msg: non-zero return code rc: 2 start: '2026-03-14 09:19:19.061450' stderr: |- Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`. Warning: The 'cinderBackup' field is deprecated and will be removed in a future release. Please migrate to 'cinderBackups'. make: *** [Makefile:444: kuttl-test-run] Error 1 stderr_lines: - 'Warning: spec.privateKey.rotationPolicy: In cert-manager >= v1.18.0, the default value changed from `Never` to `Always`.' - 'Warning: The ''cinderBackup'' field is deprecated and will be removed in a future release. Please migrate to ''cinderBackups''.' - 'make: *** [Makefile:444: kuttl-test-run] Error 1' stdout: "oc kuttl test --v 1 --start-kind=false --config test/kuttl/test-suites/default/config.yaml\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 300 seconds for each step\n harness.go:375: testsuite: test/kuttl/test-suites/default/ has 11 tests\n=== RUN kuttl/harness\n=== RUN kuttl/harness/appcred-tests\n=== PAUSE kuttl/harness/appcred-tests\n=== RUN \ kuttl/harness/common\n=== PAUSE kuttl/harness/common\n=== RUN kuttl/harness/deps\n=== PAUSE kuttl/harness/deps\n=== RUN kuttl/harness/watcher\n=== PAUSE kuttl/harness/watcher\n=== RUN kuttl/harness/watcher-api-scaling\n=== PAUSE kuttl/harness/watcher-api-scaling\n=== RUN kuttl/harness/watcher-cinder\n=== PAUSE kuttl/harness/watcher-cinder\n=== RUN kuttl/harness/watcher-notification\n=== PAUSE kuttl/harness/watcher-notification\n=== RUN kuttl/harness/watcher-rmquser\n=== PAUSE kuttl/harness/watcher-rmquser\n=== RUN kuttl/harness/watcher-tls\n=== PAUSE kuttl/harness/watcher-tls\n=== RUN kuttl/harness/watcher-tls-certs-change\n=== PAUSE kuttl/harness/watcher-tls-certs-change\n=== RUN kuttl/harness/watcher-topology\n=== PAUSE kuttl/harness/watcher-topology\n=== CONT kuttl/harness/appcred-tests\n logger.go:42: 09:19:19 | appcred-tests | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:19:19 | appcred-tests/0-cleanup | starting test step 0-cleanup\n \ logger.go:42: 09:19:19 | appcred-tests/0-cleanup | test step completed 0-cleanup\n \ logger.go:42: 09:19:19 | appcred-tests/1-deploy | starting test step 1-deploy\n \ logger.go:42: 09:19:19 | appcred-tests/1-deploy | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:19:19 | appcred-tests/1-deploy | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n oc wait -n \"${NS}\" watcher watcher-kuttl --for=condition=Ready --timeout=600s]\n logger.go:42: 09:20:09 | appcred-tests/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met\n logger.go:42: 09:20:09 | appcred-tests/1-deploy | test step completed 1-deploy\n \ logger.go:42: 09:20:09 | appcred-tests/2-deploy-appcred | starting test step 2-deploy-appcred\n logger.go:42: 09:20:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ old_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ old_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ old_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n oc create configmap appcred-watcher-pre \\\n \ --from-literal=api_uid=\"${old_api_uid}\" \\\n --from-literal=applier_uid=\"${old_applier_uid}\" \\\n --from-literal=decision_engine_uid=\"${old_de_uid}\" \\\n --dry-run=client -o yaml | oc apply -n \"${NS}\" -f -\n \n cat <<'EOF' | oc apply -n \"${NS}\" -f -\n apiVersion: keystone.openstack.org/v1beta1\n kind: KeystoneApplicationCredential\n metadata:\n name: ac-watcher\n spec:\n \ secret: os**********et\n passwordSelector: WatcherPassword\n userName: watcher\n roles:\n - admin\n - service\n unrestricted: false\n EOF\n \n oc patch watcher watcher-kuttl -n \"${NS}\" --type=merge -p '{\"spec\":{\"auth\":{\"applicationCredentialSecret\":\"ac-watcher-secret\"}}}']\n \ logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | configmap/appcred-watcher-pre created\n logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | keystoneapplicationcredential.keystone.openstack.org/ac-watcher created\n logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:10 | appcred-tests/2-deploy-appcred | error: timed out waiting for the condition on keystoneapplicationcredentials/ac-watcher\n logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:31:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:31:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:31:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail\n NS=\"${NAMESPACE}\"\n \n \ echo \"Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\"\n \ oc wait -n \"${NS}\" appcred/ac-watcher --for=condition=Ready --timeout=300s\n \ \n ac_id=$(oc get -n \"${NS}\" appcred/ac-watcher -o jsonpath='{.status.acID}')\n \ if [ -z \"${ac_id}\" ]; then\n echo \"ERROR: appcred/ac-watcher.status.acID is empty\"\n exit 1\n fi\n echo \"ac-watcher.status.acID=${ac_id}\"\n \ \n oc get -n \"${NS}\" secret/ac-watcher-secret >/dev/null\n secret_ac_id=$(oc get -n \"${NS}\" secret/ac-watcher-secret -o jsonpath='{.data.AC_ID}' | base64 -d)\n \ if [ \"${secret_ac_id}\" != \"${ac_id}\" ]; then\n echo \"ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})\"\n exit 1\n fi\n echo \"✓ Secret AC_ID matches appcred.status.acID\"\n \n \ echo \"Waiting for watcher rollouts...\"\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-api --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-applier --timeout=300s\n oc rollout status -n \"${NS}\" statefulset/watcher-kuttl-decision-engine --timeout=300s\n \n old_api_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.api_uid}')\n \ old_applier_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.applier_uid}')\n \ old_de_uid=$(oc get -n \"${NS}\" configmap/appcred-watcher-pre -o jsonpath='{.data.decision_engine_uid}')\n \ \n new_api_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-api-0 -o jsonpath='{.metadata.uid}')\n \ new_applier_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-applier-0 -o jsonpath='{.metadata.uid}')\n \ new_de_uid=$(oc get pod -n \"${NS}\" watcher-kuttl-decision-engine-0 -o jsonpath='{.metadata.uid}')\n \n if [ \"${old_api_uid}\" = \"${new_api_uid}\" ] || [ \"${old_applier_uid}\" = \"${new_applier_uid}\" ] || [ \"${old_de_uid}\" = \"${new_de_uid}\" ]; then\n echo \"ERROR: expected watcher pods to restart after appcred secret became available\"\n echo \" api: ${old_api_uid} -> ${new_api_uid}\"\n echo \" applier: ${old_applier_uid} -> ${new_applier_uid}\"\n \ echo \" decision-engine: ${old_de_uid} -> ${new_de_uid}\"\n exit 1\n fi\n echo \"✓ watcher pods restarted after appcred secret became available\"\n \n echo \"Checking watcher config contains application_credential_id...\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-api-0 -c watcher-api -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-applier-0 -c watcher-applier -- \\\n \ bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n \ oc exec -n \"${NS}\" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \\\n bash -c \"grep -q \\\"^application_credential_id = ${ac_id}$\\\" /etc/watcher/watcher.conf.d/00-default.conf\"\n echo \"✓ watcher config contains expected application_credential_id\"]\n logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...\n logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org \"ac-watcher\" not found\n logger.go:42: 09:35:10 | appcred-tests/2-deploy-appcred | test step failed 2-deploy-appcred\n case.go:396: failed in step 2-deploy-appcred\n \ case.go:398: command \"NS=\\\"${NAMESPACE}\\\"\\\\n echo \\\"Waiting for KeystoneApplicationCredential...\" failed, exit status 1\n logger.go:42: 09:35:10 | appcred-tests | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-notification\n logger.go:42: 09:35:10 | watcher-notification | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:35:10 | watcher-notification/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:35:10 | watcher-notification/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | starting test step 1-deploy-with-notification\n logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | Now using project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | error: Internal error occurred: error executing command in container: container is not created or running\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ echo\n logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + '[' 0 == 1 ']'\n logger.go:42: 09:35:12 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:12 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:16 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:16 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:21 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:25 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:25 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:29 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:29 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | + APIPOD=\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | error: unable to upgrade connection: container not found (\"watcher-api\")\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ echo\n logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + '[' 0 == 1 ']'\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:36 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:36 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:41 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:41 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:44 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+=') == 1 ]\n else\n exit 1\n fi\n ]\n logger.go:42: 09:35:44 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default\n \ logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ head -1\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ grep -v '^$'\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ grep -czPo '\\[oslo_messaging_notifications\\]\\s+driver\\s+=\\s+messagingv2\\s+transport_url\\s+='\n \ logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = messagingv2 transport_url = 'rabbit://**********=1' '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + '[' 1 == 1 ']'\n logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | test step completed 1-deploy-with-notification\n logger.go:42: 09:35:45 | watcher-notification/2-cleanup-watcher | starting test step 2-cleanup-watcher\n logger.go:42: 09:35:51 | watcher-notification/2-cleanup-watcher | test step completed 2-cleanup-watcher\n logger.go:42: 09:35:51 | watcher-notification | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-topology\n \ logger.go:42: 09:35:51 | watcher-topology | Skipping creation of user-supplied namespace: watcher-kuttl-default\n logger.go:42: 09:35:51 | watcher-topology/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:35:51 | watcher-topology/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | starting test step 1-deploy-with-topology\n logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | Topology:watcher-kuttl-default/watcher-api created\n logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:36:15 | watcher-topology/1-deploy-with-topology | test step completed 1-deploy-with-topology\n logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | starting test step 2-cleanup-watcher\n logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:36:18 | watcher-topology/2-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:36:21 | watcher-topology/2-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:36:24 | watcher-topology/2-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:36:24 | watcher-topology/2-cleanup-watcher | test step completed 2-cleanup-watcher\n logger.go:42: 09:36:24 | watcher-topology | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-tls-certs-change\n \ logger.go:42: 09:36:24 | watcher-tls-certs-change | Skipping creation of user-supplied namespace: watcher-kuttl-default\n logger.go:42: 09:36:24 | watcher-tls-certs-change/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:36:24 | watcher-tls-certs-change/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | starting test step 1-deploy-with-tlse\n logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-internal-svc created\n logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-public-svc created\n logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n \ # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:29 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:29 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:30 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:30 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods \"watcher-kuttl-api-0\" not found\n logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:42 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:42 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n \ public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${public_svc_cert}\" != \"${public_secret_cert}\" ]; then\n exit 1\n fi\n \n internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n \ internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n if [ \"${internal_svc_cert}\" != \"${internal_secret_cert}\" ]; then\n exit 1\n fi\n ]\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode\n logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | test step completed 1-deploy-with-tlse\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | starting test step 2-change-public-svc-certificate\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | running command: [sh -c oc patch Certificate -n $NAMESPACE watcher-public-svc --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/dnsNames\", \"value\":['watcher-public.watcher-kuttl-default.svc', 'watcher-public.watcher-kuttl-default.svc.cluster.local']}]'\n ]\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | certificate.cert-manager.io/watcher-public-svc patched\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | running command: [sh -c set -euxo pipefail\n svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)\n secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${svc_cert}\" != \"${secret_cert}\" ]; then\n exit 1\n fi\n \ ]\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----'\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ base64 --decode\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----'\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK\n \ logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | test step completed 2-change-public-svc-certificate\n logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | starting test step 3-change-internal-svc-certificate\n logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c oc patch Certificate -n $NAMESPACE watcher-internal-svc --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/dnsNames\", \"value\":['watcher-internal.watcher-kuttl-default.svc', 'watcher-internal.watcher-kuttl-default.svc.cluster.local']}]'\n ]\n logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | certificate.cert-manager.io/watcher-internal-svc patched\n logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail\n svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${svc_cert}\" != \"${secret_cert}\" ]; then\n exit 1\n fi\n \ ]\n logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:50 | watcher-tls-certs-change/3-change-internal-svc-certificate | error: Internal error occurred: error executing command in container: container is not created or running\n logger.go:42: 09:36:50 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert=\n logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail\n svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${svc_cert}\" != \"${secret_cert}\" ]; then\n exit 1\n fi\n \ ]\n logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | error: unable to upgrade connection: container not found (\"watcher-api\")\n logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert=\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail\n svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)\n secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath='{.data.tls\\.crt}' | base64 --decode)\n # ensure that the svc secret and cert secret match\n \ if [ \"${svc_cert}\" != \"${secret_cert}\" ]; then\n exit 1\n fi\n \ ]\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----'\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ base64 --decode\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o 'jsonpath={.data.tls\\.crt}'\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + secret_cert='-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----'\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + '[' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----' '!=' '-----BEGIN CERTIFICATE-----\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0\n \ logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----' ']'\n logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | test step completed 3-change-internal-svc-certificate\n logger.go:42: 09:36:52 | watcher-tls-certs-change/4-cleanup-watcher | starting test step 4-cleanup-watcher\n \ logger.go:42: 09:37:00 | watcher-tls-certs-change/4-cleanup-watcher | test step completed 4-cleanup-watcher\n logger.go:42: 09:37:00 | watcher-tls-certs-change/5-clenaup-certs | starting test step 5-clenaup-certs\n logger.go:42: 09:37:00 | watcher-tls-certs-change/5-clenaup-certs | test step completed 5-clenaup-certs\n logger.go:42: 09:37:00 | watcher-tls-certs-change | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-tls\n logger.go:42: 09:37:00 | watcher-tls | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:37:00 | watcher-tls/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:37:00 | watcher-tls/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | starting test step 1-deploy-with-tlse\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-internal-svc created\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-public-svc created\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:03 | watcher-tls/1-deploy-with-tlse | + '[' 0 == 1 ']'\n logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:06 | watcher-tls/1-deploy-with-tlse | + '[' 0 == 1 ']'\n logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ awk '{print $1}'\n logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ grep watcher\n logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + '[' -n '' ']'\n \ logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ grep watcher\n logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ awk '{print $1}'\n logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n \ logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1\n \ logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n \ logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + '[' 2 == 2 ']'\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + grep infra-optim\n logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c https\n logger.go:42: 09:37:20 | watcher-tls/1-deploy-with-tlse | + '[' 0 == 2 ']'\n logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ grep watcher\n logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ awk '{print $1}'\n logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n \ logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + '[' 2 == 2 ']'\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + grep infra-optim\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ grep -c https\n logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + '[' 2 == 2 ']'\n logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + '[' '' == '' ']'\n \ logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + exit 0\n logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail\n \ oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n # check that both endpoints have https set\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | ++ grep -c '^watcher'\n logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ grep watcher\n logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ awk '{print $1}'\n logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n \ logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + '[' 1 == 1 ']'\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ base64 -d\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + '[' 2 == 2 ']'\n logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + grep infra-optim\n logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | ++ grep -c https\n logger.go:42: 09:37:35 | watcher-tls/1-deploy-with-tlse | + '[' 2 == 2 ']'\n logger.go:42: 09:37:35 | watcher-tls/1-deploy-with-tlse | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | + '[' '' == '' ']'\n \ logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | + exit 0\n logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | test step completed 1-deploy-with-tlse\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | starting test step 2-patch-mtls\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n oc patch oscp -n $NAMESPACE openstack --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/memcached/templates/memcached/tls/mtls/sslVerifyMode\", \"value\": \"Request\"}]'\n ]\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + oc patch oscp -n watcher-kuttl-default openstack --type=json '-p=[{\"op\": \"replace\", \"path\": \"/spec/memcached/templates/memcached/tls/mtls/sslVerifyMode\", \"value\": \"Request\"}]'\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | openstackcontrolplane.core.openstack.org/openstack patched\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n \n oc project ${NAMESPACE}\n # Get pod names for each watcher service\n APIPOD=$(oc get pods -l service=watcher-api -o jsonpath='{.items[0].metadata.name}')\n APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath='{.items[0].metadata.name}')\n DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath='{.items[0].metadata.name}')\n \n \ # Verify memcached mTLS config parameters in watcher-api config\n if [ -n \"${APIPOD}\" ]; then\n echo \"Checking watcher-api config...\"\n \ [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n # Verify mTLS config parameters in memcached backend config\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-applier config\n if [ -n \"${APPLIERPOD}\" ]; then\n echo \"Checking watcher-applier config...\"\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-decision-engine config\n if [ -n \"${DECISIONENGINEPOD}\" ]; then\n \ echo \"Checking watcher-decision-engine config...\"\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n ]\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o 'jsonpath={.items[0].metadata.name}'\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-api config...'\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | Checking watcher-api config...\n \ logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:37 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:37 | watcher-tls/2-patch-mtls | + '[' 0 == 1 ']'\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n \n oc project ${NAMESPACE}\n # Get pod names for each watcher service\n APIPOD=$(oc get pods -l service=watcher-api -o jsonpath='{.items[0].metadata.name}')\n APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath='{.items[0].metadata.name}')\n DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath='{.items[0].metadata.name}')\n \n \ # Verify memcached mTLS config parameters in watcher-api config\n if [ -n \"${APIPOD}\" ]; then\n echo \"Checking watcher-api config...\"\n \ [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n # Verify mTLS config parameters in memcached backend config\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-applier config\n if [ -n \"${APPLIERPOD}\" ]; then\n echo \"Checking watcher-applier config...\"\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-decision-engine config\n if [ -n \"${DECISIONENGINEPOD}\" ]; then\n \ echo \"Checking watcher-decision-engine config...\"\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n ]\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o 'jsonpath={.items[0].metadata.name}'\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-api config...'\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | Checking watcher-api config...\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | error: cannot exec into a container in a completed pod; current phase is Failed\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ echo\n logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + '[' 0 == 1 ']'\n logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n \n oc project ${NAMESPACE}\n \ # Get pod names for each watcher service\n APIPOD=$(oc get pods -l service=watcher-api -o jsonpath='{.items[0].metadata.name}')\n APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath='{.items[0].metadata.name}')\n DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath='{.items[0].metadata.name}')\n \ \n # Verify memcached mTLS config parameters in watcher-api config\n \ if [ -n \"${APIPOD}\" ]; then\n echo \"Checking watcher-api config...\"\n \ [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n # Verify mTLS config parameters in memcached backend config\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-applier config\n if [ -n \"${APPLIERPOD}\" ]; then\n echo \"Checking watcher-applier config...\"\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-decision-engine config\n if [ -n \"${DECISIONENGINEPOD}\" ]; then\n \ echo \"Checking watcher-decision-engine config...\"\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n ]\n logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default\n logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o 'jsonpath={.items[0].metadata.name}'\n \ logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0\n \ logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-api config...'\n \ logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | Checking watcher-api config...\n \ logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | error: unable to upgrade connection: container not found (\"watcher-api\")\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ echo\n logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + '[' 0 == 1 ']'\n logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n \n oc project ${NAMESPACE}\n \ # Get pod names for each watcher service\n APIPOD=$(oc get pods -l service=watcher-api -o jsonpath='{.items[0].metadata.name}')\n APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath='{.items[0].metadata.name}')\n DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath='{.items[0].metadata.name}')\n \ \n # Verify memcached mTLS config parameters in watcher-api config\n \ if [ -n \"${APIPOD}\" ]; then\n echo \"Checking watcher-api config...\"\n \ [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n # Verify mTLS config parameters in memcached backend config\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-applier config\n if [ -n \"${APPLIERPOD}\" ]; then\n echo \"Checking watcher-applier config...\"\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-decision-engine config\n if [ -n \"${DECISIONENGINEPOD}\" ]; then\n \ echo \"Checking watcher-decision-engine config...\"\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n ]\n logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default\n logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o 'jsonpath={.items[0].metadata.name}'\n \ logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0\n \ logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-api config...'\n \ logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | Checking watcher-api config...\n \ logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_keyfile = /etc/pki/tls/private/mtls.key'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_enabled = true'\n logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt\n \ logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key\n \ logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\n \ logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-applier-0 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-applier config...'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | Checking watcher-applier config...\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_keyfile = /etc/pki/tls/private/mtls.key'\n logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt'\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_enabled = true'\n \ logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt\n \ logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key\n \ logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\n \ logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-decision-engine-0 ']'\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-decision-engine config...'\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | Checking watcher-decision-engine config...\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | error: Internal error occurred: error executing command in container: container is not created or running\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo\n logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + '[' 0 == 1 ']'\n logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail\n \n oc project ${NAMESPACE}\n \ # Get pod names for each watcher service\n APIPOD=$(oc get pods -l service=watcher-api -o jsonpath='{.items[0].metadata.name}')\n APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath='{.items[0].metadata.name}')\n DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath='{.items[0].metadata.name}')\n \ \n # Verify memcached mTLS config parameters in watcher-api config\n \ if [ -n \"${APIPOD}\" ]; then\n echo \"Checking watcher-api config...\"\n \ [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n # Verify mTLS config parameters in memcached backend config\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-applier config\n if [ -n \"${APPLIERPOD}\" ]; then\n echo \"Checking watcher-applier config...\"\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n \n # Verify memcached mTLS config parameters in watcher-decision-engine config\n if [ -n \"${DECISIONENGINEPOD}\" ]; then\n \ echo \"Checking watcher-decision-engine config...\"\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt \") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_keyfile = /etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"memcache_tls_enabled = true\") == 1 ]\n \n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_certfile=/etc/pki/tls/certs/mtls.crt\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_keyfile=/etc/pki/tls/private/mtls.key\") == 1 ]\n [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c \"tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\") == 1 ]\n else\n \ exit 1\n fi\n ]\n logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default\n logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o 'jsonpath={.items[0].metadata.name}'\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o 'jsonpath={.items[0].metadata.name}'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-api config...'\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | Checking watcher-api config...\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_keyfile = /etc/pki/tls/private/mtls.key'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt'\n logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_enabled = true'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt\n \ logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key\n \ logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\n \ logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-applier-0 ']'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-applier config...'\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | Checking watcher-applier config...\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_keyfile = /etc/pki/tls/private/mtls.key'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_enabled = true'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt\n \ logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key\n \ logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\n \ logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' -n watcher-kuttl-decision-engine-0 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + echo 'Checking watcher-decision-engine config...'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | Checking watcher-decision-engine config...\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt '\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_keyfile = /etc/pki/tls/private/mtls.key'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt'\n logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c 'memcache_tls_enabled = true'\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt\n \ logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | test step completed 2-patch-mtls\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | starting test step 3-disable-podlevel-tls\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/tls/api\", \"value\":{ \"internal\": {}, \"public\": {} }}]'\n ]\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n \ oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:37:56 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:37:56 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + grep internal\n logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n logger.go:42: 09:37:59 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 0 ']'\n logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n \ # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:04 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:04 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + grep internal\n \ logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n logger.go:42: 09:38:07 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 0 ']'\n logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n \ # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n \ fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + grep internal\n \ logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n logger.go:42: 09:38:14 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 0 ']'\n logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n \ # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n \ fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + grep internal\n \ logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n logger.go:42: 09:38:21 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 0 ']'\n logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n \ # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n \ fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:29 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:29 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:30 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:30 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + grep internal\n \ logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n \ logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + '[' 0 == 0 ']'\n logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + grep public\n logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n \ logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n \ logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n \ logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + '[' '' == '' ']'\n logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + exit 0\n logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail\n \ oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # check that watcher internal endpoint does not use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]\n # check that watcher public endpoint does use https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher\n logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + grep internal\n \ logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n \ logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + '[' 0 == 0 ']'\n logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list\n \ logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + grep public\n \ logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim\n \ logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https\n \ logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + '[' 1 == 1 ']'\n \ logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + '[' '' == '' ']'\n logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + exit 0\n logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | test step completed 3-disable-podlevel-tls\n \ logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | starting test step 4-deploy-without-route\n logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/override\", \"value\":{\"service\": { \"internal\": {}, \"public\": { \"metadata\": { \"annotations\": { \"metallb.universe.tf/address-pool\": \"ctlplane\", \"metallb.universe.tf/allow-shared-ip\": \"ctlplane\" } }, \"spec\": { \"type\": \"LoadBalancer\" } } } }}]'\n ]\n logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | ++ grep -c '^watcher'\n logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | + '[' 1 == 1 ']'\n logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ grep watcher\n logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ awk '{print $1}'\n logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + '[' '' == '' ']'\n logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + exit 0\n logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | running command: [sh -c set -euxo pipefail\n \ oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | ++ grep -c '^watcher'\n logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | + '[' 1 == 1 ']'\n logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ grep watcher\n logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ awk '{print $1}'\n logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + SERVICEID=e0a908c724554093bb8de86515131a2c\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + '[' '' == '' ']'\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + exit 0\n logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | test step completed 4-deploy-without-route\n \ logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | starting test step 5-disable-tls\n \ logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/override\", \"value\":{}}]'\n ]\n logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n # check that no watcher endpoint uses https\n \ oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 0 ]\n ]\n logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | ++ grep -c '^watcher'\n logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ grep watcher\n logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ awk '{print $1}'\n logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n \ logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + '[' '' == '' ']'\n logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + exit 0\n logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | running command: [sh -c set -euxo pipefail\n oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ # check that no watcher endpoint uses https\n oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 0 ]\n ]\n logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | ++ grep -c '^watcher'\n logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | + '[' 1 == 1 ']'\n logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ awk '{print $1}'\n logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ grep watcher\n \ logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c\n \ logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + '[' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c ']'\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + '[' '' == '' ']'\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + exit 0\n logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | test step completed 5-disable-tls\n logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | starting test step 6-cleanup-watcher\n logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:39:08 | watcher-tls/6-cleanup-watcher | + '[' 1 == 0 ']'\n logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:39:11 | watcher-tls/6-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:39:14 | watcher-tls/6-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:39:14 | watcher-tls/6-cleanup-watcher | test step completed 6-cleanup-watcher\n logger.go:42: 09:39:14 | watcher-tls/7-cleanup-certs | starting test step 7-cleanup-certs\n logger.go:42: 09:39:14 | watcher-tls/7-cleanup-certs | test step completed 7-cleanup-certs\n logger.go:42: 09:39:14 | watcher-tls | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-rmquser\n logger.go:42: 09:39:14 | watcher-rmquser | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:39:14 | watcher-rmquser/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:39:14 | watcher-rmquser/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | starting test step 1-deploy\n logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | running command: [sh -c set -euxo pipefail\n \n \ # Wait for Watcher to be Ready\n kubectl wait --for=condition=Ready watcher/watcher-kuttl -n $NAMESPACE --timeout=300s\n \n # Verify WatcherNotificationTransportURLReady condition exists and is True\n kubectl get watcher watcher-kuttl -n $NAMESPACE -o jsonpath='{.status.conditions[?(@.type==\"WatcherNotificationTransportURLReady\")].status}' | grep -q \"True\"\n echo \"WatcherNotificationTransportURLReady condition is True\"\n \n # Count TransportURL CRs - should be exactly 2 (one for messaging, one for notifications)\n transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep \"watcher-kuttl-watcher-transport\" | wc -l)\n notification_transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep \"watcher-kuttl-watcher-notification\" | wc -l)\n \n if [ \"$transport_count\" -ne \"1\" ]; then\n echo \"Expected 1 watcher-transport TransportURL, found $transport_count\"\n exit 1\n fi\n \n if [ \"$notification_transport_count\" -ne \"1\" ]; then\n echo \"Expected 1 notification-transport TransportURL, found $notification_transport_count\"\n exit 1\n fi\n \n echo \"Correctly found 2 TransportURLs (separate clusters: transport and notification)\"\n \ \n # Verify watcher-transport has correct user and vhost\n transport_user=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath='{.spec.username}')\n \ transport_vhost=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath='{.spec.vhost}')\n if [ \"$transport_user\" != \"watcher-rpc\" ]; then\n echo \"Expected watcher-transport username 'watcher-rpc', found '$transport_user'\"\n exit 1\n fi\n if [ \"$transport_vhost\" != \"watcher-rpc\" ]; then\n echo \"Expected watcher-transport vhost 'watcher-rpc', found '$transport_vhost'\"\n exit 1\n fi\n echo \"Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)\"\n \n # Verify notification-transport has correct user and vhost\n notif_user=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath='{.spec.username}')\n notif_vhost=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath='{.spec.vhost}')\n \ if [ \"$notif_user\" != \"watcher-notifications\" ]; then\n echo \"Expected notification-transport username 'watcher-notifications', found '$notif_user'\"\n \ exit 1\n fi\n if [ \"$notif_vhost\" != \"watcher-notifications\" ]; then\n echo \"Expected notification-transport vhost 'watcher-notifications', found '$notif_vhost'\"\n exit 1\n fi\n echo \"Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)\"\n \ \n # Verify that watcher.conf contains the notifications transport_url\n \ WATCHER_API_POD=$(kubectl get pods -n $NAMESPACE -l \"service=watcher-api\" -o custom-columns=:metadata.name --no-headers | grep -v ^$ | head -1)\n if [ -z \"${WATCHER_API_POD}\" ]; then\n echo \"No watcher-api pod found\"\n \ exit 1\n fi\n # Verify RPC transport_url in DEFAULT section\n \ rpc_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -E '^\\[DEFAULT\\]' -A 50 | grep 'transport_url' | head -1 || true)\n if [ -z \"$rpc_transport_url\" ]; then\n echo \"transport_url not found in DEFAULT section\"\n exit 1\n fi\n echo \"Found RPC transport_url: $rpc_transport_url\"\n \n \ # Verify the RPC transport_url contains the correct vhost (watcher-rpc)\n \ if ! echo \"$rpc_transport_url\" | grep -q '/watcher-rpc'; then\n echo \"RPC transport_url does not contain expected vhost '/watcher-rpc'\"\n exit 1\n fi\n echo \"Successfully verified vhost 'watcher-rpc' in RPC transport_url\"\n \ \n # Verify the RPC transport_url contains the correct username (watcher-rpc)\n \ if ! echo \"$rpc_transport_url\" | grep -q 'watcher-rpc:'; then\n echo \"RPC transport_url does not contain expected username 'watcher-rpc:'\"\n exit 1\n fi\n echo \"Successfully verified username 'watcher-rpc' in RPC transport_url\"\n \n # Verify oslo_messaging_notifications section has transport_url configured\n notif_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -A 5 '\\[oslo_messaging_notifications\\]' | grep 'transport_url' || true)\n \ if [ -z \"$notif_transport_url\" ]; then\n echo \"transport_url not found in oslo_messaging_notifications section\"\n exit 1\n fi\n \ echo \"Found notifications transport_url: $notif_transport_url\"\n \n \ # Verify the notifications transport_url contains the correct vhost (watcher-notifications)\n \ if ! echo \"$notif_transport_url\" | grep -q '/watcher-notifications'; then\n \ echo \"Notifications transport_url does not contain expected vhost '/watcher-notifications'\"\n \ exit 1\n fi\n echo \"Successfully verified vhost 'watcher-notifications' in notifications transport_url\"\n \n # Verify the notifications transport_url contains the correct username (watcher-notifications)\n if ! echo \"$notif_transport_url\" | grep -q 'watcher-notifications:'; then\n echo \"Notifications transport_url does not contain expected username 'watcher-notifications:'\"\n exit 1\n \ fi\n echo \"Successfully verified username 'watcher-notifications' in notifications transport_url\"\n \n exit 0\n ]\n logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | + kubectl wait --for=condition=Ready watcher/watcher-kuttl -n watcher-kuttl-default --timeout=300s\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + kubectl get watcher watcher-kuttl -n watcher-kuttl-default -o 'jsonpath={.status.conditions[?(@.type==\"WatcherNotificationTransportURLReady\")].status}'\n \ logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + grep -q True\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + echo 'WatcherNotificationTransportURLReady condition is True'\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | WatcherNotificationTransportURLReady condition is True\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ wc -l\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-transport\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + transport_count=1\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ wc -l\n logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-notification\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notification_transport_count=1\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' 1 -ne 1 ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' 1 -ne 1 ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Correctly found 2 TransportURLs (separate clusters: transport and notification)'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Correctly found 2 TransportURLs (separate clusters: transport and notification)\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o 'jsonpath={.spec.username}'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + transport_user=watcher-rpc\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o 'jsonpath={.spec.vhost}'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + transport_vhost=watcher-rpc\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' watcher-rpc '!=' watcher-rpc ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' watcher-rpc '!=' watcher-rpc ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)'\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o 'jsonpath={.spec.username}'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notif_user=watcher-notifications\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o 'jsonpath={.spec.vhost}'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notif_vhost=watcher-notifications\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' watcher-notifications '!=' watcher-notifications ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' watcher-notifications '!=' watcher-notifications ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get pods -n watcher-kuttl-default -l service=watcher-api -o custom-columns=:metadata.name --no-headers\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ head -1\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -v '^$'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + WATCHER_API_POD=watcher-kuttl-api-0\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' -z watcher-kuttl-api-0 ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep transport_url\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -E '^\\[DEFAULT\\]' -A 50\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ head -1\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + rpc_transport_url='transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + '[' -z 'transport_url = rabbit://**********=1' ']'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Found RPC transport_url: transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Found RPC transport_url: transport_url = rabbit://**********=1\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + grep -q /watcher-rpc\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Successfully verified vhost '\\''watcher-rpc'\\'' in RPC transport_url'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Successfully verified vhost 'watcher-rpc' in RPC transport_url\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + grep -q watcher-rpc:\n \ logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo 'Successfully verified username '\\''watcher-rpc'\\'' in RPC transport_url'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Successfully verified username 'watcher-rpc' in RPC transport_url\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -A 5 '\\[oslo_messaging_notifications\\]'\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep transport_url\n logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + notif_transport_url='transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + '[' -z 'transport_url = rabbit://**********=1' ']'\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo 'Found notifications transport_url: transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Found notifications transport_url: transport_url = rabbit://**********=1\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + grep -q /watcher-notifications\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo 'Successfully verified vhost '\\''watcher-notifications'\\'' in notifications transport_url'\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Successfully verified vhost 'watcher-notifications' in notifications transport_url\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + grep -q watcher-notifications:\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo 'Successfully verified username '\\''watcher-notifications'\\'' in notifications transport_url'\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Successfully verified username 'watcher-notifications' in notifications transport_url\n logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + exit 0\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | running command: [sh -c set -euxo pipefail\n \n # Wait for Watcher to be Ready\n kubectl wait --for=condition=Ready watcher/watcher-kuttl -n $NAMESPACE --timeout=300s\n \ \n # Verify WatcherNotificationTransportURLReady condition exists and is True\n kubectl get watcher watcher-kuttl -n $NAMESPACE -o jsonpath='{.status.conditions[?(@.type==\"WatcherNotificationTransportURLReady\")].status}' | grep -q \"True\"\n echo \"WatcherNotificationTransportURLReady condition is True\"\n \n # Count TransportURL CRs - should be exactly 2 (one for messaging, one for notifications)\n transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep \"watcher-kuttl-watcher-transport\" | wc -l)\n notification_transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep \"watcher-kuttl-watcher-notification\" | wc -l)\n \n if [ \"$transport_count\" -ne \"1\" ]; then\n echo \"Expected 1 watcher-transport TransportURL, found $transport_count\"\n exit 1\n fi\n \n if [ \"$notification_transport_count\" -ne \"1\" ]; then\n echo \"Expected 1 notification-transport TransportURL, found $notification_transport_count\"\n exit 1\n fi\n \n echo \"Correctly found 2 TransportURLs (separate clusters: transport and notification)\"\n \ \n # Verify watcher-transport has correct user and vhost\n transport_user=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath='{.spec.username}')\n \ transport_vhost=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath='{.spec.vhost}')\n if [ \"$transport_user\" != \"watcher-rpc\" ]; then\n echo \"Expected watcher-transport username 'watcher-rpc', found '$transport_user'\"\n exit 1\n fi\n if [ \"$transport_vhost\" != \"watcher-rpc\" ]; then\n echo \"Expected watcher-transport vhost 'watcher-rpc', found '$transport_vhost'\"\n exit 1\n fi\n echo \"Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)\"\n \n # Verify notification-transport has correct user and vhost\n notif_user=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath='{.spec.username}')\n notif_vhost=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath='{.spec.vhost}')\n \ if [ \"$notif_user\" != \"watcher-notifications\" ]; then\n echo \"Expected notification-transport username 'watcher-notifications', found '$notif_user'\"\n \ exit 1\n fi\n if [ \"$notif_vhost\" != \"watcher-notifications\" ]; then\n echo \"Expected notification-transport vhost 'watcher-notifications', found '$notif_vhost'\"\n exit 1\n fi\n echo \"Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)\"\n \ \n # Verify that watcher.conf contains the notifications transport_url\n \ WATCHER_API_POD=$(kubectl get pods -n $NAMESPACE -l \"service=watcher-api\" -o custom-columns=:metadata.name --no-headers | grep -v ^$ | head -1)\n if [ -z \"${WATCHER_API_POD}\" ]; then\n echo \"No watcher-api pod found\"\n \ exit 1\n fi\n # Verify RPC transport_url in DEFAULT section\n \ rpc_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -E '^\\[DEFAULT\\]' -A 50 | grep 'transport_url' | head -1 || true)\n if [ -z \"$rpc_transport_url\" ]; then\n echo \"transport_url not found in DEFAULT section\"\n exit 1\n fi\n echo \"Found RPC transport_url: $rpc_transport_url\"\n \n \ # Verify the RPC transport_url contains the correct vhost (watcher-rpc)\n \ if ! echo \"$rpc_transport_url\" | grep -q '/watcher-rpc'; then\n echo \"RPC transport_url does not contain expected vhost '/watcher-rpc'\"\n exit 1\n fi\n echo \"Successfully verified vhost 'watcher-rpc' in RPC transport_url\"\n \ \n # Verify the RPC transport_url contains the correct username (watcher-rpc)\n \ if ! echo \"$rpc_transport_url\" | grep -q 'watcher-rpc:'; then\n echo \"RPC transport_url does not contain expected username 'watcher-rpc:'\"\n exit 1\n fi\n echo \"Successfully verified username 'watcher-rpc' in RPC transport_url\"\n \n # Verify oslo_messaging_notifications section has transport_url configured\n notif_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -A 5 '\\[oslo_messaging_notifications\\]' | grep 'transport_url' || true)\n \ if [ -z \"$notif_transport_url\" ]; then\n echo \"transport_url not found in oslo_messaging_notifications section\"\n exit 1\n fi\n \ echo \"Found notifications transport_url: $notif_transport_url\"\n \n \ # Verify the notifications transport_url contains the correct vhost (watcher-notifications)\n \ if ! echo \"$notif_transport_url\" | grep -q '/watcher-notifications'; then\n \ echo \"Notifications transport_url does not contain expected vhost '/watcher-notifications'\"\n \ exit 1\n fi\n echo \"Successfully verified vhost 'watcher-notifications' in notifications transport_url\"\n \n # Verify the notifications transport_url contains the correct username (watcher-notifications)\n if ! echo \"$notif_transport_url\" | grep -q 'watcher-notifications:'; then\n echo \"Notifications transport_url does not contain expected username 'watcher-notifications:'\"\n exit 1\n \ fi\n echo \"Successfully verified username 'watcher-notifications' in notifications transport_url\"\n \n exit 0\n ]\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + kubectl wait --for=condition=Ready watcher/watcher-kuttl -n watcher-kuttl-default --timeout=300s\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + kubectl get watcher watcher-kuttl -n watcher-kuttl-default -o 'jsonpath={.status.conditions[?(@.type==\"WatcherNotificationTransportURLReady\")].status}'\n \ logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + grep -q True\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + echo 'WatcherNotificationTransportURLReady condition is True'\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | WatcherNotificationTransportURLReady condition is True\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ wc -l\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-transport\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + transport_count=1\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ wc -l\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-notification\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + notification_transport_count=1\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + '[' 1 -ne 1 ']'\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + '[' 1 -ne 1 ']'\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + echo 'Correctly found 2 TransportURLs (separate clusters: transport and notification)'\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | Correctly found 2 TransportURLs (separate clusters: transport and notification)\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o 'jsonpath={.spec.username}'\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + transport_user=watcher-rpc\n logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o 'jsonpath={.spec.vhost}'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + transport_vhost=watcher-rpc\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' watcher-rpc '!=' watcher-rpc ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' watcher-rpc '!=' watcher-rpc ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o 'jsonpath={.spec.username}'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_user=watcher-notifications\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o 'jsonpath={.spec.vhost}'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_vhost=watcher-notifications\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' watcher-notifications '!=' watcher-notifications ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' watcher-notifications '!=' watcher-notifications ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get pods -n watcher-kuttl-default -l service=watcher-api -o custom-columns=:metadata.name --no-headers\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ head -1\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -v '^$'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + WATCHER_API_POD=watcher-kuttl-api-0\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' -z watcher-kuttl-api-0 ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep transport_url\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -E '^\\[DEFAULT\\]' -A 50\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ head -1\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + rpc_transport_url='transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' -z 'transport_url = rabbit://**********=1' ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Found RPC transport_url: transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Found RPC transport_url: transport_url = rabbit://**********=1\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q /watcher-rpc\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Successfully verified vhost '\\''watcher-rpc'\\'' in RPC transport_url'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified vhost 'watcher-rpc' in RPC transport_url\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q watcher-rpc:\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Successfully verified username '\\''watcher-rpc'\\'' in RPC transport_url'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified username 'watcher-rpc' in RPC transport_url\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep transport_url\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -A 5 '\\[oslo_messaging_notifications\\]'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_transport_url='transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + '[' -z 'transport_url = rabbit://**********=1' ']'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Found notifications transport_url: transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Found notifications transport_url: transport_url = rabbit://**********=1\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q /watcher-notifications\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Successfully verified vhost '\\''watcher-notifications'\\'' in notifications transport_url'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified vhost 'watcher-notifications' in notifications transport_url\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q watcher-notifications:\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'transport_url = rabbit://**********=1'\n \ logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo 'Successfully verified username '\\''watcher-notifications'\\'' in notifications transport_url'\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified username 'watcher-notifications' in notifications transport_url\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + exit 0\n logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | test step completed 1-deploy\n logger.go:42: 09:39:43 | watcher-rmquser/2-cleanup-watcher | starting test step 2-cleanup-watcher\n logger.go:42: 09:39:49 | watcher-rmquser/2-cleanup-watcher | test step completed 2-cleanup-watcher\n logger.go:42: 09:39:49 | watcher-rmquser | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher\n logger.go:42: 09:39:49 | watcher | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:39:49 | watcher/0-cleanup-watcher | starting test step 0-cleanup-watcher\n \ logger.go:42: 09:39:49 | watcher/0-cleanup-watcher | test step completed 0-cleanup-watcher\n \ logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | starting test step 1-deploy-with-defaults\n logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n \ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:39:52 | watcher/1-deploy-with-defaults | + '[' 0 == 1 ']'\n logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:39:55 | watcher/1-deploy-with-defaults | + '[' 0 == 1 ']'\n logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f\n logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + '[' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f ']'\n logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + '[' -n '' ']'\n \ logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n \ [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f\n logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | + '[' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f ']'\n logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d\n \ logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + '[' 2 == 2 ']'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c 'region_name = regionOne'\n \ logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + '[' 9 -ge 1 ']'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n \ [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + '[' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f ']'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d\n \ logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n \ logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + '[' 2 == 2 ']'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c 'region_name = regionOne'\n logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + '[' 9 -ge 1 ']'\n logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + '[' '' == '' ']'\n \ logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n \ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + '[' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f ']'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d\n \ logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + '[' 2 == 2 ']'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c 'region_name = regionOne'\n logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + '[' 9 -ge 1 ']'\n logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + '[' '' == '' ']'\n \ logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n \ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.my\\.cnf}'|base64 -d|grep -c 'ssl=1')\" == 1 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem')\" == 2 ]\n [ \"$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath='{.data.00-default\\.conf}'|base64 -d|grep -c 'region_name = regionOne')\" -ge 1 ]\n # If we are running the container locally, skip following test\n \ if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + '[' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f ']'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n \ logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ base64 -d\n \ logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.my\\.cnf}'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ grep -c 'cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + '[' 2 == 2 ']'\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ grep -c 'region_name = regionOne'\n \ logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ base64 -d\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o 'jsonpath={.data.00-default\\.conf}'\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + '[' 9 -ge 1 ']'\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | test step completed 1-deploy-with-defaults\n logger.go:42: 09:40:24 | watcher/2-cleanup-watcher | starting test step 2-cleanup-watcher\n logger.go:42: 09:40:24 | watcher/2-cleanup-watcher | test step completed 2-cleanup-watcher\n logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | starting test step 3-precreate-mariadbaccount\n logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | MariaDBAccount:watcher-kuttl-default/watcher-precreated created\n logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | test step completed 3-precreate-mariadbaccount\n \ logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | starting test step 4-deploy-with-precreated-account\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Secret:wa**********ig created\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | error: Internal error occurred: error executing command in container: container is not created or running\n logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | ++ echo\n logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | + '[' 0 == 1 ']'\n logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:32 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:35 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:35 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:39 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:39 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:46 | watcher/4-deploy-with-precreated-account | + APIPOD=\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n \ APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | error: unable to upgrade connection: container not found (\"watcher-api\")\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ echo\n logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + '[' 0 == 1 ']'\n logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:40:52 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:40:52 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail\n oc project watcher-kuttl-default\n APIPOD=$(oc get pods -n watcher-kuttl-default -l \"service=watcher-api\" -ocustom-columns=:metadata.name|grep -v ^$|head -1)\n if [ -n \"${APIPOD}\" ]; then\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c \"^# Global config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c \"^# Service config\") == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem') == 1 ]\n [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo 'TimeOut 80') == 1 ]\n else\n exit 1\n fi\n ]\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | Already on project \"watcher-kuttl-default\" on server \"https://api.crc.testing:6443\".\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ head -1\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -v '^$'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + '[' -n watcher-kuttl-api-0 ']'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Global config'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo '#' Global config\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -c '^# Service config'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo '#' Service config\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -czPo '\\[prometheus_client\\]\\s+host\\s+=\\s+metric-storage-prometheus.watcher-kuttl-default.svc\\s+port\\s+=\\s+9090\\s+cafile\\s+=\\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf\n \ logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo '[DEFAULT]' state_path = /var/lib/watcher transport_url = 'rabbit://**********=1' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log '#' empty notification_level means that no notification will be sent notification_level = '[database]' connection = 'mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf' '[oslo_policy]' policy_file = /etc/watcher/policy.yaml.sample '[oslo_messaging_notifications]' driver = noop '[oslo_messaging_rabbit]' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true '[keystone_authtoken]' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[watcher_clients_auth]' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem '[oslo_concurrency]' lock_path = /var/lib/watcher/tmp '[watcher_datasources]' datasources = prometheus '[cache]' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 '[prometheus_client]' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem '[aetos_client]' endpoint_type = internal region_name = regionOne '[cinder_client]' endpoint_type = internal region_name = regionOne '[glance_client]' endpoint_type = internal region_name = regionOne '[ironic_client]' endpoint_type = internal region_name = regionOne '[keystone_client]' interface = internal region_name = regionOne '[neutron_client]' endpoint_type = internal region_name = regionOne '[nova_client]' endpoint_type = internal region_name = regionOne '[placement_client]' interface = internal region_name = regionOne '[watcher_cluster_data_model_collectors.compute]' period = 900 '[watcher_cluster_data_model_collectors.baremetal]' period = 900 '[watcher_cluster_data_model_collectors.storage]' period = 900\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -czPo 'TimeOut 80'\n logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf\n \ logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | ++ echo '#' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '' ServerName watcher-internal.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' '' '#' public vhost watcher-public.watcher-kuttl-default.svc configuration '' ServerName watcher-public.watcher-kuttl-default.svc '##' Vhost docroot DocumentRoot '\"/var/www/cgi-bin\"' '#' Set the timeout for the watcher-api TimeOut 80 '##' Directories, there should at least be a declaration for /var/www/cgi-bin '' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '' '##' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined 'env=!forwarded' CustomLog /dev/stdout proxy env=forwarded '##' set watcher log level to debug LogLevel debug '##' WSGI configuration WSGIApplicationGroup '%{GLOBAL}' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / '\"/usr/bin/watcher-api-wsgi\"' ''\n logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | + '[' 1 == 1 ']'\n logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | test step completed 4-deploy-with-precreated-account\n \ logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | starting test step 5-cleanup-watcher\n \ logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:41:11 | watcher/5-cleanup-watcher | + '[' 1 == 0 ']'\n logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | ++ grep -c '^watcher'\n \ logger.go:42: 09:41:15 | watcher/5-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:41:18 | watcher/5-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:41:18 | watcher/5-cleanup-watcher | test step completed 5-cleanup-watcher\n logger.go:42: 09:41:18 | watcher | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-cinder\n logger.go:42: 09:41:18 | watcher-cinder | Skipping creation of user-supplied namespace: watcher-kuttl-default\n \ logger.go:42: 09:41:18 | watcher-cinder/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:41:18 | watcher-cinder/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | starting test step 1-deploy-watcher-no-cinder\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n \ logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:20 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:20 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:27 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:27 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:35 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods \"watcher-kuttl-decision-engine-0\" not found in namespace \"watcher-kuttl-default\"\n logger.go:42: 09:41:35 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | Error from server (BadRequest): container \"watcher-decision-engine\" in pod \"watcher-kuttl-decision-engine-0\" is waiting to start: ContainerCreating\n logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:40 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 1 == 2 ']'\n logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | test step completed 1-deploy-watcher-no-cinder\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | starting test step 2-deploy-cinder\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | OpenStackControlPlane:watcher-kuttl-default/openstack updated\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n \ # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:52 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:58 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:11 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:18 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:24 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:30 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:36 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:42 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | + '[' 2 == 0 ']'\n logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:48 | watcher-cinder/2-deploy-cinder | Error from server (BadRequest): container \"watcher-decision-engine\" in pod \"watcher-kuttl-decision-engine-0\" is waiting to start: ContainerCreating\n logger.go:42: 09:42:48 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:58 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision detects that there is a cinder service and\n # does not log that storage collector is skipped\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 0 ]\n ]\n logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | + '[' 0 == 0 ']'\n logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | test step completed 2-deploy-cinder\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | starting test step 3-remove-cinder\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | OpenStackControlPlane:watcher-kuttl-default/openstack updated\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n \ # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n \ ]\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n \ logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:03 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n \ logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n \ # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n \ ]\n logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | Error from server (BadRequest): container \"watcher-decision-engine\" in pod \"watcher-kuttl-decision-engine-0\" is waiting to start: ContainerCreating\n logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n \ logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:10 | watcher-cinder/3-remove-cinder | + '[' 0 == 2 ']'\n \ logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n \ logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n \ # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n \ ]\n logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:16 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n \ logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n \ logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail\n # check that the decision engine correctly detects that there is no cinder service\n [ \"$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c 'Block storage service is not enabled, skipping storage collector')\" == 2 ]\n ]\n logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0\n logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | ++ grep -c 'Block storage service is not enabled, skipping storage collector'\n logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | + '[' 2 == 2 ']'\n logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | test step completed 3-remove-cinder\n logger.go:42: 09:43:18 | watcher-cinder/4-cleanup-watcher | starting test step 4-cleanup-watcher\n logger.go:42: 09:43:30 | watcher-cinder/4-cleanup-watcher | test step completed 4-cleanup-watcher\n logger.go:42: 09:43:30 | watcher-cinder | skipping kubernetes event logging\n=== CONT kuttl/harness/watcher-api-scaling\n \ logger.go:42: 09:43:30 | watcher-api-scaling | Skipping creation of user-supplied namespace: watcher-kuttl-default\n logger.go:42: 09:43:30 | watcher-api-scaling/0-cleanup-watcher | starting test step 0-cleanup-watcher\n logger.go:42: 09:43:30 | watcher-api-scaling/0-cleanup-watcher | test step completed 0-cleanup-watcher\n logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | starting test step 1-deploy-with-defaults\n logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | Watcher:watcher-kuttl-default/watcher-kuttl created\n logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n ]\n logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:32 | watcher-api-scaling/1-deploy-with-defaults | + '[' 0 == 1 ']'\n logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:35 | watcher-api-scaling/1-deploy-with-defaults | + '[' 0 == 1 ']'\n logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1\n logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + '[' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 ']'\n logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + '[' -n '' ']'\n logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n \ SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n \ [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:43:46 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1\n logger.go:42: 09:43:46 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + '[' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 ']'\n logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + '[' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 ']'\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + '[' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 ']'\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]\n SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk '{print $1}')\n [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]\n [ -n \"$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})\" ]\n # If we are running the container locally, skip following test\n if [ \"$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)\" == \"\" ]; then\n exit 0\n fi\n env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)\n \ counter=0\n for i in ${env_variables}; do\n if echo ${i} | grep '_URL_DEFAULT' &> /dev/null; then\n echo ${i}\n counter=$((counter + 1))\n fi\n done\n if [ ${counter} -lt 3 ]; then\n echo \"Error: Less than 3 _URL_DEFAULT variables found.\"\n exit 1\n else\n \ echo \"Success: ${counter} _URL_DEFAULT variables found.\"\n fi\n \ ]\n logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c '^watcher'\n logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | + '[' 1 == 1 ']'\n logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher\n logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ awk '{print $1}'\n logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID\n logger.go:42: 09:44:03 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1\n logger.go:42: 09:44:03 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o 'jsonpath={.status.serviceID}'\n \ logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + '[' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 ']'\n logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o 'jsonpath={.status.hash.dbsync}'\n logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + '[' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq ']'\n logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher\n \ logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + '[' '' == '' ']'\n logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + exit 0\n logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | test step completed 1-deploy-with-defaults\n logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | starting test step 2-scale-up-watcher-api\n logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/replicas\", \"value\":3}]'\n \ ]\n logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:44:15 | watcher-api-scaling/2-scale-up-watcher-api | test step completed 2-scale-up-watcher-api\n \ logger.go:42: 09:44:15 | watcher-api-scaling/3-scale-down-watcher-api | starting test step 3-scale-down-watcher-api\n logger.go:42: 09:44:15 | watcher-api-scaling/3-scale-down-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/replicas\", \"value\":1}]'\n \ ]\n logger.go:42: 09:44:16 | watcher-api-scaling/3-scale-down-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:44:19 | watcher-api-scaling/3-scale-down-watcher-api | test step completed 3-scale-down-watcher-api\n \ logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | starting test step 4-scale-down-zero-watcher-api\n logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type='json' -p='[{\"op\": \"replace\", \"path\": \"/spec/apiServiceTemplate/replicas\", \"value\":0}]'\n \ ]\n logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched\n logger.go:42: 09:44:20 | watcher-api-scaling/4-scale-down-zero-watcher-api | test step completed 4-scale-down-zero-watcher-api\n \ logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | starting test step 5-cleanup-watcher\n logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:44:22 | watcher-api-scaling/5-cleanup-watcher | + '[' 1 == 0 ']'\n logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | running command: [sh -c set -ex\n oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]\n ]\n logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type\n logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | ++ grep -c '^watcher'\n logger.go:42: 09:44:26 | watcher-api-scaling/5-cleanup-watcher | + '[' 0 == 0 ']'\n logger.go:42: 09:44:26 | watcher-api-scaling/5-cleanup-watcher | test step completed 5-cleanup-watcher\n logger.go:42: 09:44:26 | watcher-api-scaling | skipping kubernetes event logging\n=== CONT kuttl/harness/deps\n logger.go:42: 09:44:26 | deps | Ignoring infra.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n \ logger.go:42: 09:44:26 | deps | Ignoring keystone.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n logger.go:42: 09:44:26 | deps | Ignoring kustomization.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n \ logger.go:42: 09:44:26 | deps | Ignoring namespace.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n logger.go:42: 09:44:26 | deps | Ignoring telemetry.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n \ logger.go:42: 09:44:26 | deps | Skipping creation of user-supplied namespace: watcher-kuttl-default\n logger.go:42: 09:44:26 | deps | skipping kubernetes event logging\n=== CONT kuttl/harness/common\n logger.go:42: 09:44:26 | common | Ignoring cleanup-assert.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n \ logger.go:42: 09:44:26 | common | Ignoring cleanup-errors.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n logger.go:42: 09:44:26 | common | Ignoring cleanup-watcher.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n logger.go:42: 09:44:26 | common | Ignoring deploy-with-defaults.yaml as it does not match file name regexp: ^(\\d+)-(?:[^\\.]+)(?:\\.yaml)?$\n \ logger.go:42: 09:44:26 | common | Skipping creation of user-supplied namespace: watcher-kuttl-default\n logger.go:42: 09:44:26 | common | skipping kubernetes event logging\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 (1507.06s)\n \ --- FAIL: kuttl/harness (0.00s)\n --- FAIL: kuttl/harness/appcred-tests (951.33s)\n --- PASS: kuttl/harness/watcher-notification (40.72s)\n --- PASS: kuttl/harness/watcher-topology (33.46s)\n --- PASS: kuttl/harness/watcher-tls-certs-change (35.80s)\n --- PASS: kuttl/harness/watcher-tls (134.34s)\n --- PASS: kuttl/harness/watcher-rmquser (34.76s)\n --- PASS: kuttl/harness/watcher (88.99s)\n --- PASS: kuttl/harness/watcher-cinder (131.87s)\n --- PASS: kuttl/harness/watcher-api-scaling (55.74s)\n --- PASS: kuttl/harness/deps (0.00s)\n --- PASS: kuttl/harness/common (0.02s)\nFAIL" stdout_lines: - oc kuttl test --v 1 --start-kind=false --config test/kuttl/test-suites/default/config.yaml - === 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 300 seconds for each step' - ' harness.go:375: testsuite: test/kuttl/test-suites/default/ has 11 tests' - === RUN kuttl/harness - === RUN kuttl/harness/appcred-tests - === PAUSE kuttl/harness/appcred-tests - === RUN kuttl/harness/common - === PAUSE kuttl/harness/common - === RUN kuttl/harness/deps - === PAUSE kuttl/harness/deps - === RUN kuttl/harness/watcher - === PAUSE kuttl/harness/watcher - === RUN kuttl/harness/watcher-api-scaling - === PAUSE kuttl/harness/watcher-api-scaling - === RUN kuttl/harness/watcher-cinder - === PAUSE kuttl/harness/watcher-cinder - === RUN kuttl/harness/watcher-notification - === PAUSE kuttl/harness/watcher-notification - === RUN kuttl/harness/watcher-rmquser - === PAUSE kuttl/harness/watcher-rmquser - === RUN kuttl/harness/watcher-tls - === PAUSE kuttl/harness/watcher-tls - === RUN kuttl/harness/watcher-tls-certs-change - === PAUSE kuttl/harness/watcher-tls-certs-change - === RUN kuttl/harness/watcher-topology - === PAUSE kuttl/harness/watcher-topology - === CONT kuttl/harness/appcred-tests - ' logger.go:42: 09:19:19 | appcred-tests | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:19:19 | appcred-tests/0-cleanup | starting test step 0-cleanup' - ' logger.go:42: 09:19:19 | appcred-tests/0-cleanup | test step completed 0-cleanup' - ' logger.go:42: 09:19:19 | appcred-tests/1-deploy | starting test step 1-deploy' - ' logger.go:42: 09:19:19 | appcred-tests/1-deploy | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:19:19 | appcred-tests/1-deploy | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' oc wait -n "${NS}" watcher watcher-kuttl --for=condition=Ready --timeout=600s]' - ' logger.go:42: 09:20:09 | appcred-tests/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met' - ' logger.go:42: 09:20:09 | appcred-tests/1-deploy | test step completed 1-deploy' - ' logger.go:42: 09:20:09 | appcred-tests/2-deploy-appcred | starting test step 2-deploy-appcred' - ' logger.go:42: 09:20:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' old_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' old_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' old_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' oc create configmap appcred-watcher-pre \' - ' --from-literal=api_uid="${old_api_uid}" \' - ' --from-literal=applier_uid="${old_applier_uid}" \' - ' --from-literal=decision_engine_uid="${old_de_uid}" \' - ' --dry-run=client -o yaml | oc apply -n "${NS}" -f -' - ' ' - ' cat <<''EOF'' | oc apply -n "${NS}" -f -' - ' apiVersion: keystone.openstack.org/v1beta1' - ' kind: KeystoneApplicationCredential' - ' metadata:' - ' name: ac-watcher' - ' spec:' - ' secret: os**********et' - ' passwordSelector: WatcherPassword' - ' userName: watcher' - ' roles:' - ' - admin' - ' - service' - ' unrestricted: false' - ' EOF' - ' ' - ' oc patch watcher watcher-kuttl -n "${NS}" --type=merge -p ''{"spec":{"auth":{"applicationCredentialSecret":"ac-watcher-secret"}}}'']' - ' logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | configmap/appcred-watcher-pre created' - ' logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | keystoneapplicationcredential.keystone.openstack.org/ac-watcher created' - ' logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:20:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:10 | appcred-tests/2-deploy-appcred | error: timed out waiting for the condition on keystoneapplicationcredentials/ac-watcher' - ' logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:25:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:26:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:27:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:28:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:29:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:30:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:31:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:31:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:31:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:32:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:16 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:25 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:32 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:39 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:47 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:55 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:33:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:01 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:03 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:07 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:08 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:08 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:10 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:11 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:12 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:13 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:14 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:15 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:16 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:16 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:17 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:18 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:19 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:20 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:21 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:22 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:23 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:24 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:25 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:25 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:26 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:27 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:28 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:29 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:30 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:31 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:32 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:32 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:33 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:34 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:35 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:36 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:37 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:38 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:39 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:39 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:40 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:41 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:42 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:43 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:44 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:45 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:46 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:47 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:47 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:48 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:49 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:50 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:51 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:52 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:53 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:54 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:56 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:57 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:58 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:34:59 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:00 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:01 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:01 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:02 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:03 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:03 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:04 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:05 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:06 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:07 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:07 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:08 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | running command: [sh -c set -euo pipefail' - ' NS="${NAMESPACE}"' - ' ' - ' echo "Waiting for KeystoneApplicationCredential ac-watcher to be Ready..."' - ' oc wait -n "${NS}" appcred/ac-watcher --for=condition=Ready --timeout=300s' - ' ' - ' ac_id=$(oc get -n "${NS}" appcred/ac-watcher -o jsonpath=''{.status.acID}'')' - ' if [ -z "${ac_id}" ]; then' - ' echo "ERROR: appcred/ac-watcher.status.acID is empty"' - ' exit 1' - ' fi' - ' echo "ac-watcher.status.acID=${ac_id}"' - ' ' - ' oc get -n "${NS}" secret/ac-watcher-secret >/dev/null' - ' secret_ac_id=$(oc get -n "${NS}" secret/ac-watcher-secret -o jsonpath=''{.data.AC_ID}'' | base64 -d)' - ' if [ "${secret_ac_id}" != "${ac_id}" ]; then' - ' echo "ERROR: Secret AC_ID (${secret_ac_id}) != appcred.status.acID (${ac_id})"' - ' exit 1' - ' fi' - ' echo "✓ Secret AC_ID matches appcred.status.acID"' - ' ' - ' echo "Waiting for watcher rollouts..."' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-api --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-applier --timeout=300s' - ' oc rollout status -n "${NS}" statefulset/watcher-kuttl-decision-engine --timeout=300s' - ' ' - ' old_api_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.api_uid}'')' - ' old_applier_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.applier_uid}'')' - ' old_de_uid=$(oc get -n "${NS}" configmap/appcred-watcher-pre -o jsonpath=''{.data.decision_engine_uid}'')' - ' ' - ' new_api_uid=$(oc get pod -n "${NS}" watcher-kuttl-api-0 -o jsonpath=''{.metadata.uid}'')' - ' new_applier_uid=$(oc get pod -n "${NS}" watcher-kuttl-applier-0 -o jsonpath=''{.metadata.uid}'')' - ' new_de_uid=$(oc get pod -n "${NS}" watcher-kuttl-decision-engine-0 -o jsonpath=''{.metadata.uid}'')' - ' ' - ' if [ "${old_api_uid}" = "${new_api_uid}" ] || [ "${old_applier_uid}" = "${new_applier_uid}" ] || [ "${old_de_uid}" = "${new_de_uid}" ]; then' - ' echo "ERROR: expected watcher pods to restart after appcred secret became available"' - ' echo " api: ${old_api_uid} -> ${new_api_uid}"' - ' echo " applier: ${old_applier_uid} -> ${new_applier_uid}"' - ' echo " decision-engine: ${old_de_uid} -> ${new_de_uid}"' - ' exit 1' - ' fi' - ' echo "✓ watcher pods restarted after appcred secret became available"' - ' ' - ' echo "Checking watcher config contains application_credential_id..."' - ' oc exec -n "${NS}" pod/watcher-kuttl-api-0 -c watcher-api -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-applier-0 -c watcher-applier -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' oc exec -n "${NS}" pod/watcher-kuttl-decision-engine-0 -c watcher-decision-engine -- \' - ' bash -c "grep -q \"^application_credential_id = ${ac_id}$\" /etc/watcher/watcher.conf.d/00-default.conf"' - ' echo "✓ watcher config contains expected application_credential_id"]' - ' logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | Waiting for KeystoneApplicationCredential ac-watcher to be Ready...' - ' logger.go:42: 09:35:09 | appcred-tests/2-deploy-appcred | Error from server (NotFound): keystoneapplicationcredentials.keystone.openstack.org "ac-watcher" not found' - ' logger.go:42: 09:35:10 | appcred-tests/2-deploy-appcred | test step failed 2-deploy-appcred' - ' case.go:396: failed in step 2-deploy-appcred' - ' case.go:398: command "NS=\"${NAMESPACE}\"\\n echo \"Waiting for KeystoneApplicationCredential..." failed, exit status 1' - ' logger.go:42: 09:35:10 | appcred-tests | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-notification - ' logger.go:42: 09:35:10 | watcher-notification | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:35:10 | watcher-notification/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:35:10 | watcher-notification/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | starting test step 1-deploy-with-notification' - ' logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:10 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | Now using project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | error: Internal error occurred: error executing command in container: container is not created or running' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | ++ echo' - ' logger.go:42: 09:35:11 | watcher-notification/1-deploy-with-notification | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:35:12 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:12 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:13 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:14 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:15 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:16 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:16 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:17 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:18 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:19 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:20 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:21 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:22 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:23 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:24 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:25 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:25 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:26 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:27 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:28 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:29 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:29 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:30 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:31 | watcher-notification/1-deploy-with-notification | + APIPOD=' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | error: unable to upgrade connection: container not found ("watcher-api")' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | ++ echo' - ' logger.go:42: 09:35:32 | watcher-notification/1-deploy-with-notification | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:34 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:35 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:36 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:36 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:37 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:38 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:39 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:40 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:41 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:41 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:42 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:43 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:44 | watcher-notification/1-deploy-with-notification | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+='') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:35:44 | watcher-notification/1-deploy-with-notification | + oc project watcher-kuttl-default' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ head -1' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ grep -v ''^$''' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ grep -czPo ''\[oslo_messaging_notifications\]\s+driver\s+=\s+messagingv2\s+transport_url\s+=''' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_3add:c5d8ab0e913be98c16eb7b7c5c5a1976@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = messagingv2 transport_url = ''rabbit://**********=1'' ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:35:45 | watcher-notification/1-deploy-with-notification | test step completed 1-deploy-with-notification' - ' logger.go:42: 09:35:45 | watcher-notification/2-cleanup-watcher | starting test step 2-cleanup-watcher' - ' logger.go:42: 09:35:51 | watcher-notification/2-cleanup-watcher | test step completed 2-cleanup-watcher' - ' logger.go:42: 09:35:51 | watcher-notification | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-topology - ' logger.go:42: 09:35:51 | watcher-topology | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:35:51 | watcher-topology/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:35:51 | watcher-topology/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | starting test step 1-deploy-with-topology' - ' logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | Topology:watcher-kuttl-default/watcher-api created' - ' logger.go:42: 09:35:51 | watcher-topology/1-deploy-with-topology | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:36:15 | watcher-topology/1-deploy-with-topology | test step completed 1-deploy-with-topology' - ' logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | starting test step 2-cleanup-watcher' - ' logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:36:15 | watcher-topology/2-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:36:18 | watcher-topology/2-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:36:19 | watcher-topology/2-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:36:21 | watcher-topology/2-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:36:22 | watcher-topology/2-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:36:24 | watcher-topology/2-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:36:24 | watcher-topology/2-cleanup-watcher | test step completed 2-cleanup-watcher' - ' logger.go:42: 09:36:24 | watcher-topology | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-tls-certs-change - ' logger.go:42: 09:36:24 | watcher-tls-certs-change | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | starting test step 1-deploy-with-tlse' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-internal-svc created' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-public-svc created' - ' logger.go:42: 09:36:24 | watcher-tls-certs-change/1-deploy-with-tlse | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:25 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:26 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:27 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:28 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:29 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:29 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:30 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:30 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:31 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:32 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:33 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:34 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | Error from server (NotFound): pods "watcher-kuttl-api-0" not found' - ' logger.go:42: 09:36:36 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:37 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:39 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:40 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:41 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:42 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:42 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:43 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:44 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:45 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:46 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:47 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' public_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' public_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${public_svc_cert}" != "${public_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ' - ' internal_svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' internal_secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${internal_svc_cert}" != "${internal_secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + public_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + public_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ base64 --decode' - ' logger.go:42: 09:36:48 | watcher-tls-certs-change/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | + internal_secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MIIDtzCCAh+gAwIBAgIRAOviQaqjjQ4A8GTn0ObYN9UwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | GjEYMBYGA1UEAxMPcm9vdGNhLWludGVybmFsMB4XDTI2MDMxNDA5MzYyNloXDTMx' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | MDMxMzA5MzYyNlowADCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMFm' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | OXSkmmHqQNLCHeKk21bRLWm9D/x02LQe4DBhAhWXi8Fv091sVOyWZyi0aOj4vR72' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | zxVKeyC/dk5b8mMpbd8BsUQZymZvx0bICjmCiy3/2XeT6UN+TbByXr1zxreReFX6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | IPTwgxUaLDgMJNckUkXuPWFHpSM9VmgsX7PHF70sBcnohIxcBWQ+mRlLNnvevshr' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | tnENhtAWnYo8IzWDuDwGpjlV2udkJm8oAymGjTJZjrLl4cM2/YEPayryilEyCXt6' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dmKKKdNJwwc7daus5jjeB61rj+Euj9i7k4VJ0dbc3hoMawENCUxd1iEpZ8hrYzwd' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | gqxSY8FBySOsOpE6f4UCAwEAAaOBkTCBjjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0l' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | BAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRHmG/kNN4R' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | AXRuteqRAnTHzA6xPDA4BgNVHREBAf8ELjAsgip3YXRjaGVyLWludGVybmFsLndh' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | dGNoZXIta3V0dGwtZGVmYXVsdC5zdmMwDQYJKoZIhvcNAQEMBQADggGBABvVpRyL' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | LYOYtFwx705GeRQaYFv7zsVPwEh88v4fVJp78VkDyH3aOHR5MdJUTpSkI+rlAqgn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | FnJo2Q1xCjKLHrk6/306WyHD5YTY9bHAA2fdNDCFI9uUyIe9cp/4+kHSdpcwS5To' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | aBjUmgLQrPo3YiUC641+vOJg0dzT4JWi3RqflnWDKYYEHsG1GF/KNLJoTipunDA+' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | 6qVljxzBEA2eOfQkRtIcTpbNS2MwYwgnr4IWo6q86d3Lv9/CDP/4JP1q/r2mWBOb' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | rTsDohIwyIPV7ZncQZM4mAg7kuyoBeYYxrx67ARSoR0cB0QF3qo3+Ybt78KEeYID' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | X1EPIDSyjhO9TLlufzdyXecT3XAjW9PCP8eqGrRlG8qxMhMk4omeVytptmYGTe8r' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | YMrn5o11820geCAv39teQAK8VcMAyQSO/S/Ss8Q/XBaY7zonwdMPT6PIRyUfIzAn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | L/XA9s+XEZdGHWLj31RKo7h2C5UQRWhutzugotvFcioF0bVkKTMy/NOf4A==' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/1-deploy-with-tlse | test step completed 1-deploy-with-tlse' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | starting test step 2-change-public-svc-certificate' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | running command: [sh -c oc patch Certificate -n $NAMESPACE watcher-public-svc --type=''json'' -p=''[{"op": "replace", "path": "/spec/dnsNames", "value":[''watcher-public.watcher-kuttl-default.svc'', ''watcher-public.watcher-kuttl-default.svc.cluster.local'']}]''' - ' ]' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | certificate.cert-manager.io/watcher-public-svc patched' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | running command: [sh -c set -euxo pipefail' - ' svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt)' - ' secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-public-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${svc_cert}" != "${secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/public.crt' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ base64 --decode' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ++ oc get -n watcher-kuttl-default secret cert-watcher-public-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MIIDszCCAhugAwIBAgIRAOR/0Fiub301knirimnM4xgwDQYJKoZIhvcNAQEMBQAw' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | GDEWMBQGA1UEAxMNcm9vdGNhLXB1YmxpYzAeFw0yNjAzMTQwOTM2MjVaFw0zMTAz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MTMwOTM2MjVaMAAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrq6sN' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | JvN1y3jjPR3eKuVzZBO67xOeDFD+jOdHaRhHHq8pqwT8yv4jLM+lt+iag68uOduz' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ycu0r7B/zHUjXBf9jdDyzwQEZSgKRvgAceu2Ig7Lbv7p1C/Mvh0YYM1n1wxJ1onn' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MUBL+dp6zUlXfXUenNWcghNw/X9fCkEBNKs+GO6lXo123/5ta8FsGMYnAPRy2Tsk' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | YNf3w0aEIf+9/rnho7Rvm2Cy2IiJCwE3muyWY0mqGpl93vUJohy1dghZUOQMoMou' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | F+NAu265JrRRn9torEA1s4HTuNQ2nl6ltBmr6BJ+Gm35REdt7jsNVdAExcCQZF0a' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | N7yUiCyFGxdcdm/1AgMBAAGjgY8wgYwwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQM' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | MAoGCCsGAQUFBwMBMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUKeRpCtOZVXu7' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Ofg9u+EmlddjTzQwNgYDVR0RAQH/BCwwKoIod2F0Y2hlci1wdWJsaWMud2F0Y2hl' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | ci1rdXR0bC1kZWZhdWx0LnN2YzANBgkqhkiG9w0BAQwFAAOCAYEAb2uWx8KPvqhR' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | Vks/GsGf38V6lIa0lygt15sYJdO0ara8t/F3PT0Tc5+VoX4Vb0RsUP3Os4q/RJIG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | aqspYeNKVUZW3lXXzhLz5oaL0JTan7yrNyBNNGmJ+CJlFNrugFsq+5I+5Hq/DP7J' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | qZ2n8rIo9OZy4XgAgdbCDO1RImmHXbhOsk3bsnwe9/+s/dD6alZZ3lbAUMaC9mLX' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | lklzzj5Ypvj8Us67txgDWCc24RpYzywNTyfeGcCASw82kM74pso68JWMhwKx3j6z' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | FkrNrGe8nhQnhGYYvIpNhXBMcXP0Cjc3R5nkj8c7UsLWQtPJzCO1z29haJp0zCmc' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 52bVj1jOJ/oj0w+Cc0z5mu25h3m8+xpoMMRHsYH1cIw66XUHVtQCe43C/qMrpjlG' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | 5DlgYkaHtJ5gmHxfHvfwSGz2nQWprx8L1226RKNz2L36csCxFJ8W8UWcmUVFYAwK' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | UIxCOGbSy+tECJeyy0ltN2krgrvayP+PGo6m3o5Q74tWubu9w98A' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/2-change-public-svc-certificate | test step completed 2-change-public-svc-certificate' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | starting test step 3-change-internal-svc-certificate' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c oc patch Certificate -n $NAMESPACE watcher-internal-svc --type=''json'' -p=''[{"op": "replace", "path": "/spec/dnsNames", "value":[''watcher-internal.watcher-kuttl-default.svc'', ''watcher-internal.watcher-kuttl-default.svc.cluster.local'']}]''' - ' ]' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | certificate.cert-manager.io/watcher-internal-svc patched' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail' - ' svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${svc_cert}" != "${secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:49 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:50 | watcher-tls-certs-change/3-change-internal-svc-certificate | error: Internal error occurred: error executing command in container: container is not created or running' - ' logger.go:42: 09:36:50 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert=' - ' logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail' - ' svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${svc_cert}" != "${secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | error: unable to upgrade connection: container not found ("watcher-api")' - ' logger.go:42: 09:36:51 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert=' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | running command: [sh -c set -euxo pipefail' - ' svc_cert=$(oc rsh -n $NAMESPACE -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt)' - ' secret_cert=$(oc get -n $NAMESPACE secret cert-watcher-internal-svc -o jsonpath=''{.data.tls\.crt}'' | base64 --decode)' - ' # ensure that the svc secret and cert secret match' - ' if [ "${svc_cert}" != "${secret_cert}" ]; then' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc rsh -n watcher-kuttl-default -c watcher-api watcher-kuttl-api-0 cat /etc/pki/tls/certs/internal.crt' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + svc_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ base64 --decode' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ++ oc get -n watcher-kuttl-default secret cert-watcher-internal-svc -o ''jsonpath={.data.tls\.crt}''' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + secret_cert=''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----''' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | + ''['' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----'' ''!='' ''-----BEGIN CERTIFICATE-----' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MIID8DCCAligAwIBAgIQajyja/okveMym9ZKBf72LjANBgkqhkiG9w0BAQwFADAa' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MRgwFgYDVQQDEw9yb290Y2EtaW50ZXJuYWwwHhcNMjYwMzE0MDkzNjUwWhcNMzEw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | MzEzMDkzNjUwWjAAMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4S4p' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | yP8aQfvOUpKYA2csCMYtnRCvHUQjFn5L/0uId8KEre8xVSzRZbeTV05hkxlklYaZ' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | zh79ln9aDCOT6kanAVAppwiA7Gmyw3cLC5SnLT1nAHipvF3r7DqzI7MFgO5gRFgW' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | HpAoSIsnBPwXt4hnmrw2Vtzdw34ig+letfnOxuZWaU4h8krF+8hCGJ/RLq99ajJy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G6CFAwh3YjWCoqeemDvIW92p2Up9uTyT7Bxzmbe+ybEFSXQAUYzQde3B3mWIBLnz' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | esOz/0G3/3e24Aj9+7zpcbd0pVuVMUXCV9pEcPo1kTKX+KBgvS6Z+oi7lkeHPXYw' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | O/lURQupvVThqDbWDwIDAQABo4HLMIHIMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUE' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | DDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFEeYb+Q03hEB' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | dG616pECdMfMDrE8MHIGA1UdEQEB/wRoMGaCKndhdGNoZXItaW50ZXJuYWwud2F0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | Y2hlci1rdXR0bC1kZWZhdWx0LnN2Y4I4d2F0Y2hlci1pbnRlcm5hbC53YXRjaGVy' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | LWt1dHRsLWRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwwDQYJKoZIhvcNAQEMBQAD' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ggGBAK6NF533YWWeQT84GLLzJ0ogHXKIDKZVRwqLaNXLWGG0W03Cow9vch6+Fv0b' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | rkJisw8FbyD772PLovRl0hsUOW2DQw+R7qtNsCHUTxLMDnBkJ1QBYPJS80LumsGR' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | vVXFLl69tqGXkoaOyYgogD7HHJO69quA7qENirYSK1RHdmoqF5CX2qKJnLdnEgmP' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | ZFGE1JshS1XaVoz4DYDTlqq8FHZ0/Jigrj8EG1Rjpv6+qA8m2ZEsk8ISyFmzwWqi' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FGw1GV874NeqiB3ip4atDzH2ossazs4WNn65dA757uk6lICb2vKbXzNTadZRTQSM' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | FehTsYpmDx5lc1y9K1MpBOmZmGRXIfHkrg2YVRsFq72bZQlRfop1dOgXDKRImakm' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | F9+dzFNDrHO6H3MHI6bnC2DQUWI2FOvAJ8L93wedHbyR8sJ8ObnJli7pngCIY1Rp' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | E8tkXhzRn5kiy7dXmeP4LYghoCN/8q0zIct6CNUFL3VMCCm9EWruWCiFr+G60Nz0' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | G8kFPA==' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | -----END CERTIFICATE-----'' '']''' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/3-change-internal-svc-certificate | test step completed 3-change-internal-svc-certificate' - ' logger.go:42: 09:36:52 | watcher-tls-certs-change/4-cleanup-watcher | starting test step 4-cleanup-watcher' - ' logger.go:42: 09:37:00 | watcher-tls-certs-change/4-cleanup-watcher | test step completed 4-cleanup-watcher' - ' logger.go:42: 09:37:00 | watcher-tls-certs-change/5-clenaup-certs | starting test step 5-clenaup-certs' - ' logger.go:42: 09:37:00 | watcher-tls-certs-change/5-clenaup-certs | test step completed 5-clenaup-certs' - ' logger.go:42: 09:37:00 | watcher-tls-certs-change | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-tls - ' logger.go:42: 09:37:00 | watcher-tls | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:37:00 | watcher-tls/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:37:00 | watcher-tls/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | starting test step 1-deploy-with-tlse' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-internal-svc created' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Certificate:watcher-kuttl-default/watcher-public-svc created' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:00 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:03 | watcher-tls/1-deploy-with-tlse | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:04 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:06 | watcher-tls/1-deploy-with-tlse | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:08 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ awk ''{print $1}''' - ' logger.go:42: 09:37:10 | watcher-tls/1-deploy-with-tlse | ++ grep watcher' - ' logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:37:12 | watcher-tls/1-deploy-with-tlse | + ''['' -n '''' '']''' - ' logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:13 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ grep watcher' - ' logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:37:15 | watcher-tls/1-deploy-with-tlse | ++ awk ''{print $1}''' - ' logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:37:17 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | + grep infra-optim' - ' logger.go:42: 09:37:18 | watcher-tls/1-deploy-with-tlse | ++ grep -c https' - ' logger.go:42: 09:37:20 | watcher-tls/1-deploy-with-tlse | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:21 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ grep watcher' - ' logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ awk ''{print $1}''' - ' logger.go:42: 09:37:23 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:37:25 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + grep infra-optim' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:37:26 | watcher-tls/1-deploy-with-tlse | ++ grep -c https' - ' logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:37:28 | watcher-tls/1-deploy-with-tlse | + exit 0' - ' logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n ${NAMESPACE} secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' # check that both endpoints have https set' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 2 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:29 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ grep watcher' - ' logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ awk ''{print $1}''' - ' logger.go:42: 09:37:31 | watcher-tls/1-deploy-with-tlse | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ grep -c ssl=1' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ base64 -d' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:37:33 | watcher-tls/1-deploy-with-tlse | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + grep infra-optim' - ' logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:37:34 | watcher-tls/1-deploy-with-tlse | ++ grep -c https' - ' logger.go:42: 09:37:35 | watcher-tls/1-deploy-with-tlse | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:37:35 | watcher-tls/1-deploy-with-tlse | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | + exit 0' - ' logger.go:42: 09:37:36 | watcher-tls/1-deploy-with-tlse | test step completed 1-deploy-with-tlse' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | starting test step 2-patch-mtls' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' oc patch oscp -n $NAMESPACE openstack --type=''json'' -p=''[{"op": "replace", "path": "/spec/memcached/templates/memcached/tls/mtls/sslVerifyMode", "value": "Request"}]''' - ' ]' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + oc patch oscp -n watcher-kuttl-default openstack --type=json ''-p=[{"op": "replace", "path": "/spec/memcached/templates/memcached/tls/mtls/sslVerifyMode", "value": "Request"}]''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | openstackcontrolplane.core.openstack.org/openstack patched' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' ' - ' oc project ${NAMESPACE}' - ' # Get pod names for each watcher service' - ' APIPOD=$(oc get pods -l service=watcher-api -o jsonpath=''{.items[0].metadata.name}'')' - ' APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath=''{.items[0].metadata.name}'')' - ' DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath=''{.items[0].metadata.name}'')' - ' ' - ' # Verify memcached mTLS config parameters in watcher-api config' - ' if [ -n "${APIPOD}" ]; then' - ' echo "Checking watcher-api config..."' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' # Verify mTLS config parameters in memcached backend config' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-applier config' - ' if [ -n "${APPLIERPOD}" ]; then' - ' echo "Checking watcher-applier config..."' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-decision-engine config' - ' if [ -n "${DECISIONENGINEPOD}" ]; then' - ' echo "Checking watcher-decision-engine config..."' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-api config...''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | Checking watcher-api config...' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:36 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:37 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:37 | watcher-tls/2-patch-mtls | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' ' - ' oc project ${NAMESPACE}' - ' # Get pod names for each watcher service' - ' APIPOD=$(oc get pods -l service=watcher-api -o jsonpath=''{.items[0].metadata.name}'')' - ' APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath=''{.items[0].metadata.name}'')' - ' DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath=''{.items[0].metadata.name}'')' - ' ' - ' # Verify memcached mTLS config parameters in watcher-api config' - ' if [ -n "${APIPOD}" ]; then' - ' echo "Checking watcher-api config..."' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' # Verify mTLS config parameters in memcached backend config' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-applier config' - ' if [ -n "${APPLIERPOD}" ]; then' - ' echo "Checking watcher-applier config..."' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-decision-engine config' - ' if [ -n "${DECISIONENGINEPOD}" ]; then' - ' echo "Checking watcher-decision-engine config..."' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-api config...''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | Checking watcher-api config...' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | error: cannot exec into a container in a completed pod; current phase is Failed' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | ++ echo' - ' logger.go:42: 09:37:38 | watcher-tls/2-patch-mtls | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' ' - ' oc project ${NAMESPACE}' - ' # Get pod names for each watcher service' - ' APIPOD=$(oc get pods -l service=watcher-api -o jsonpath=''{.items[0].metadata.name}'')' - ' APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath=''{.items[0].metadata.name}'')' - ' DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath=''{.items[0].metadata.name}'')' - ' ' - ' # Verify memcached mTLS config parameters in watcher-api config' - ' if [ -n "${APIPOD}" ]; then' - ' echo "Checking watcher-api config..."' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' # Verify mTLS config parameters in memcached backend config' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-applier config' - ' if [ -n "${APPLIERPOD}" ]; then' - ' echo "Checking watcher-applier config..."' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-decision-engine config' - ' if [ -n "${DECISIONENGINEPOD}" ]; then' - ' echo "Checking watcher-decision-engine config..."' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default' - ' logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:37:39 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-api config...''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | Checking watcher-api config...' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | error: unable to upgrade connection: container not found ("watcher-api")' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | ++ echo' - ' logger.go:42: 09:37:40 | watcher-tls/2-patch-mtls | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' ' - ' oc project ${NAMESPACE}' - ' # Get pod names for each watcher service' - ' APIPOD=$(oc get pods -l service=watcher-api -o jsonpath=''{.items[0].metadata.name}'')' - ' APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath=''{.items[0].metadata.name}'')' - ' DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath=''{.items[0].metadata.name}'')' - ' ' - ' # Verify memcached mTLS config parameters in watcher-api config' - ' if [ -n "${APIPOD}" ]; then' - ' echo "Checking watcher-api config..."' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' # Verify mTLS config parameters in memcached backend config' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-applier config' - ' if [ -n "${APPLIERPOD}" ]; then' - ' echo "Checking watcher-applier config..."' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-decision-engine config' - ' if [ -n "${DECISIONENGINEPOD}" ]; then' - ' echo "Checking watcher-decision-engine config..."' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0' - ' logger.go:42: 09:37:41 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-api config...''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | Checking watcher-api config...' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_keyfile = /etc/pki/tls/private/mtls.key''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_enabled = true''' - ' logger.go:42: 09:37:42 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-applier-0 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-applier config...''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | Checking watcher-applier config...' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_keyfile = /etc/pki/tls/private/mtls.key''' - ' logger.go:42: 09:37:43 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_enabled = true''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key' - ' logger.go:42: 09:37:44 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-decision-engine-0 '']''' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-decision-engine config...''' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | Checking watcher-decision-engine config...' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | error: Internal error occurred: error executing command in container: container is not created or running' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | ++ echo' - ' logger.go:42: 09:37:45 | watcher-tls/2-patch-mtls | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | running command: [sh -c set -euxo pipefail' - ' ' - ' oc project ${NAMESPACE}' - ' # Get pod names for each watcher service' - ' APIPOD=$(oc get pods -l service=watcher-api -o jsonpath=''{.items[0].metadata.name}'')' - ' APPLIERPOD=$(oc get pods -l service=watcher-applier -o jsonpath=''{.items[0].metadata.name}'')' - ' DECISIONENGINEPOD=$(oc get pods -l service=watcher-decision-engine -o jsonpath=''{.items[0].metadata.name}'')' - ' ' - ' # Verify memcached mTLS config parameters in watcher-api config' - ' if [ -n "${APIPOD}" ]; then' - ' echo "Checking watcher-api config..."' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' # Verify mTLS config parameters in memcached backend config' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api $APIPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-applier config' - ' if [ -n "${APPLIERPOD}" ]; then' - ' echo "Checking watcher-applier config..."' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-applier $APPLIERPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ' - ' # Verify memcached mTLS config parameters in watcher-decision-engine config' - ' if [ -n "${DECISIONENGINEPOD}" ]; then' - ' echo "Checking watcher-decision-engine config..."' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_keyfile = /etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "memcache_tls_enabled = true") == 1 ]' - ' ' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_certfile=/etc/pki/tls/certs/mtls.crt") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_keyfile=/etc/pki/tls/private/mtls.key") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-decision-engine $DECISIONENGINEPOD cat /etc/watcher/watcher.conf.d/00-default.conf) | grep -c "tls_cafile=/etc/pki/tls/certs/mtls-ca.crt") == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | + oc project watcher-kuttl-default' - ' logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:37:46 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-api -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-applier -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + APPLIERPOD=watcher-kuttl-applier-0' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ oc get pods -l service=watcher-decision-engine -o ''jsonpath={.items[0].metadata.name}''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + DECISIONENGINEPOD=watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-api config...''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | Checking watcher-api config...' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_keyfile = /etc/pki/tls/private/mtls.key''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt''' - ' logger.go:42: 09:37:47 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_enabled = true''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-applier-0 '']''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-applier config...''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | Checking watcher-applier config...' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:48 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_keyfile = /etc/pki/tls/private/mtls.key''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_enabled = true''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt' - ' logger.go:42: 09:37:49 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-applier watcher-kuttl-applier-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' -n watcher-kuttl-decision-engine-0 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + echo ''Checking watcher-decision-engine config...''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | Checking watcher-decision-engine config...' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt ''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_keyfile = /etc/pki/tls/private/mtls.key''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt''' - ' logger.go:42: 09:37:50 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c ''memcache_tls_enabled = true''' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_certfile=/etc/pki/tls/certs/mtls.crt' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_keyfile=/etc/pki/tls/private/mtls.key' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | ++ grep -c tls_cafile=/etc/pki/tls/certs/mtls-ca.crt' - ' logger.go:42: 09:37:51 | watcher-tls/2-patch-mtls | +++ oc rsh -c watcher-decision-engine watcher-kuttl-decision-engine-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_6c35:2385b7d3506503ff893d33774928a31b@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/ca.crt ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:52 | watcher-tls/2-patch-mtls | test step completed 2-patch-mtls' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | starting test step 3-disable-podlevel-tls' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/tls/api", "value":{ "internal": {}, "public": {} }}]''' - ' ]' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:37:52 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:37:54 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:37:56 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:37:56 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:37:57 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:37:59 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:00 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:02 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:04 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:04 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:05 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:07 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:08 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:38:10 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:12 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:14 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:15 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:17 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:19 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:21 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:22 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:26 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:29 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:29 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:30 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:30 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:31 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + grep public' - ' logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:33 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:38:35 | watcher-tls/3-disable-podlevel-tls | + exit 0' - ' logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # check that watcher internal endpoint does not use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep internal | [ $(grep -c https) == 0 ]' - ' # check that watcher public endpoint does use https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | grep public | [ $(grep -c https) == 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:36 | watcher-tls/3-disable-podlevel-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:38 | watcher-tls/3-disable-podlevel-tls | ++ grep watcher' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + grep internal' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:40 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack endpoint list' - ' logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + grep public' - ' logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | + grep infra-optim' - ' logger.go:42: 09:38:42 | watcher-tls/3-disable-podlevel-tls | ++ grep -c https' - ' logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | + exit 0' - ' logger.go:42: 09:38:45 | watcher-tls/3-disable-podlevel-tls | test step completed 3-disable-podlevel-tls' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | starting test step 4-deploy-without-route' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/override", "value":{"service": { "internal": {}, "public": { "metadata": { "annotations": { "metallb.universe.tf/address-pool": "ctlplane", "metallb.universe.tf/allow-shared-ip": "ctlplane" } }, "spec": { "type": "LoadBalancer" } } } }}]''' - ' ]' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:45 | watcher-tls/4-deploy-without-route | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ grep watcher' - ' logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:47 | watcher-tls/4-deploy-without-route | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:49 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:38:50 | watcher-tls/4-deploy-without-route | + exit 0' - ' logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:51 | watcher-tls/4-deploy-without-route | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ grep watcher' - ' logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:53 | watcher-tls/4-deploy-without-route | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | + exit 0' - ' logger.go:42: 09:38:55 | watcher-tls/4-deploy-without-route | test step completed 4-deploy-without-route' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | starting test step 5-disable-tls' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/override", "value":{}}]''' - ' ]' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' # check that no watcher endpoint uses https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 0 ]' - ' ]' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:38:55 | watcher-tls/5-disable-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ grep watcher' - ' logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:38:57 | watcher-tls/5-disable-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:38:59 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:39:00 | watcher-tls/5-disable-tls | + exit 0' - ' logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | running command: [sh -c set -euxo pipefail' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n ${NAMESPACE} openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n ${NAMESPACE} keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n ${NAMESPACE} watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' # check that no watcher endpoint uses https' - ' oc exec -n ${NAMESPACE} openstackclient -- openstack endpoint list | grep infra-optim | [ $(grep -c https) == 0 ]' - ' ]' - ' logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:01 | watcher-tls/5-disable-tls | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ awk ''{print $1}''' - ' logger.go:42: 09:39:03 | watcher-tls/5-disable-tls | ++ grep watcher' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + SERVICEID=e0a908c724554093bb8de86515131a2c' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + ''['' e0a908c724554093bb8de86515131a2c == e0a908c724554093bb8de86515131a2c '']''' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | + exit 0' - ' logger.go:42: 09:39:05 | watcher-tls/5-disable-tls | test step completed 5-disable-tls' - ' logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | starting test step 6-cleanup-watcher' - ' logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:05 | watcher-tls/6-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:08 | watcher-tls/6-cleanup-watcher | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:09 | watcher-tls/6-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:11 | watcher-tls/6-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:12 | watcher-tls/6-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:14 | watcher-tls/6-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:39:14 | watcher-tls/6-cleanup-watcher | test step completed 6-cleanup-watcher' - ' logger.go:42: 09:39:14 | watcher-tls/7-cleanup-certs | starting test step 7-cleanup-certs' - ' logger.go:42: 09:39:14 | watcher-tls/7-cleanup-certs | test step completed 7-cleanup-certs' - ' logger.go:42: 09:39:14 | watcher-tls | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-rmquser - ' logger.go:42: 09:39:14 | watcher-rmquser | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:39:14 | watcher-rmquser/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:39:14 | watcher-rmquser/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | starting test step 1-deploy' - ' logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | running command: [sh -c set -euxo pipefail' - ' ' - ' # Wait for Watcher to be Ready' - ' kubectl wait --for=condition=Ready watcher/watcher-kuttl -n $NAMESPACE --timeout=300s' - ' ' - ' # Verify WatcherNotificationTransportURLReady condition exists and is True' - ' kubectl get watcher watcher-kuttl -n $NAMESPACE -o jsonpath=''{.status.conditions[?(@.type=="WatcherNotificationTransportURLReady")].status}'' | grep -q "True"' - ' echo "WatcherNotificationTransportURLReady condition is True"' - ' ' - ' # Count TransportURL CRs - should be exactly 2 (one for messaging, one for notifications)' - ' transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep "watcher-kuttl-watcher-transport" | wc -l)' - ' notification_transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep "watcher-kuttl-watcher-notification" | wc -l)' - ' ' - ' if [ "$transport_count" -ne "1" ]; then' - ' echo "Expected 1 watcher-transport TransportURL, found $transport_count"' - ' exit 1' - ' fi' - ' ' - ' if [ "$notification_transport_count" -ne "1" ]; then' - ' echo "Expected 1 notification-transport TransportURL, found $notification_transport_count"' - ' exit 1' - ' fi' - ' ' - ' echo "Correctly found 2 TransportURLs (separate clusters: transport and notification)"' - ' ' - ' # Verify watcher-transport has correct user and vhost' - ' transport_user=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath=''{.spec.username}'')' - ' transport_vhost=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath=''{.spec.vhost}'')' - ' if [ "$transport_user" != "watcher-rpc" ]; then' - ' echo "Expected watcher-transport username ''watcher-rpc'', found ''$transport_user''"' - ' exit 1' - ' fi' - ' if [ "$transport_vhost" != "watcher-rpc" ]; then' - ' echo "Expected watcher-transport vhost ''watcher-rpc'', found ''$transport_vhost''"' - ' exit 1' - ' fi' - ' echo "Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)"' - ' ' - ' # Verify notification-transport has correct user and vhost' - ' notif_user=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath=''{.spec.username}'')' - ' notif_vhost=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath=''{.spec.vhost}'')' - ' if [ "$notif_user" != "watcher-notifications" ]; then' - ' echo "Expected notification-transport username ''watcher-notifications'', found ''$notif_user''"' - ' exit 1' - ' fi' - ' if [ "$notif_vhost" != "watcher-notifications" ]; then' - ' echo "Expected notification-transport vhost ''watcher-notifications'', found ''$notif_vhost''"' - ' exit 1' - ' fi' - ' echo "Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)"' - ' ' - ' # Verify that watcher.conf contains the notifications transport_url' - ' WATCHER_API_POD=$(kubectl get pods -n $NAMESPACE -l "service=watcher-api" -o custom-columns=:metadata.name --no-headers | grep -v ^$ | head -1)' - ' if [ -z "${WATCHER_API_POD}" ]; then' - ' echo "No watcher-api pod found"' - ' exit 1' - ' fi' - ' # Verify RPC transport_url in DEFAULT section' - ' rpc_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -E ''^\[DEFAULT\]'' -A 50 | grep ''transport_url'' | head -1 || true)' - ' if [ -z "$rpc_transport_url" ]; then' - ' echo "transport_url not found in DEFAULT section"' - ' exit 1' - ' fi' - ' echo "Found RPC transport_url: $rpc_transport_url"' - ' ' - ' # Verify the RPC transport_url contains the correct vhost (watcher-rpc)' - ' if ! echo "$rpc_transport_url" | grep -q ''/watcher-rpc''; then' - ' echo "RPC transport_url does not contain expected vhost ''/watcher-rpc''"' - ' exit 1' - ' fi' - ' echo "Successfully verified vhost ''watcher-rpc'' in RPC transport_url"' - ' ' - ' # Verify the RPC transport_url contains the correct username (watcher-rpc)' - ' if ! echo "$rpc_transport_url" | grep -q ''watcher-rpc:''; then' - ' echo "RPC transport_url does not contain expected username ''watcher-rpc:''"' - ' exit 1' - ' fi' - ' echo "Successfully verified username ''watcher-rpc'' in RPC transport_url"' - ' ' - ' # Verify oslo_messaging_notifications section has transport_url configured' - ' notif_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -A 5 ''\[oslo_messaging_notifications\]'' | grep ''transport_url'' || true)' - ' if [ -z "$notif_transport_url" ]; then' - ' echo "transport_url not found in oslo_messaging_notifications section"' - ' exit 1' - ' fi' - ' echo "Found notifications transport_url: $notif_transport_url"' - ' ' - ' # Verify the notifications transport_url contains the correct vhost (watcher-notifications)' - ' if ! echo "$notif_transport_url" | grep -q ''/watcher-notifications''; then' - ' echo "Notifications transport_url does not contain expected vhost ''/watcher-notifications''"' - ' exit 1' - ' fi' - ' echo "Successfully verified vhost ''watcher-notifications'' in notifications transport_url"' - ' ' - ' # Verify the notifications transport_url contains the correct username (watcher-notifications)' - ' if ! echo "$notif_transport_url" | grep -q ''watcher-notifications:''; then' - ' echo "Notifications transport_url does not contain expected username ''watcher-notifications:''"' - ' exit 1' - ' fi' - ' echo "Successfully verified username ''watcher-notifications'' in notifications transport_url"' - ' ' - ' exit 0' - ' ]' - ' logger.go:42: 09:39:14 | watcher-rmquser/1-deploy | + kubectl wait --for=condition=Ready watcher/watcher-kuttl -n watcher-kuttl-default --timeout=300s' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + kubectl get watcher watcher-kuttl -n watcher-kuttl-default -o ''jsonpath={.status.conditions[?(@.type=="WatcherNotificationTransportURLReady")].status}''' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + grep -q True' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + echo ''WatcherNotificationTransportURLReady condition is True''' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | WatcherNotificationTransportURLReady condition is True' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ wc -l' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-transport' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | + transport_count=1' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ wc -l' - ' logger.go:42: 09:39:39 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-notification' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notification_transport_count=1' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' 1 -ne 1 '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' 1 -ne 1 '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Correctly found 2 TransportURLs (separate clusters: transport and notification)''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Correctly found 2 TransportURLs (separate clusters: transport and notification)' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o ''jsonpath={.spec.username}''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + transport_user=watcher-rpc' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o ''jsonpath={.spec.vhost}''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + transport_vhost=watcher-rpc' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' watcher-rpc ''!='' watcher-rpc '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' watcher-rpc ''!='' watcher-rpc '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o ''jsonpath={.spec.username}''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notif_user=watcher-notifications' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o ''jsonpath={.spec.vhost}''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + notif_vhost=watcher-notifications' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' watcher-notifications ''!='' watcher-notifications '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' watcher-notifications ''!='' watcher-notifications '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl get pods -n watcher-kuttl-default -l service=watcher-api -o custom-columns=:metadata.name --no-headers' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ head -1' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -v ''^$''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + WATCHER_API_POD=watcher-kuttl-api-0' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' -z watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep transport_url' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -E ''^\[DEFAULT\]'' -A 50' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ head -1' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + rpc_transport_url=''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + ''['' -z ''transport_url = rabbit://**********=1'' '']''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Found RPC transport_url: transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Found RPC transport_url: transport_url = rabbit://**********=1' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + grep -q /watcher-rpc' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Successfully verified vhost ''\''''watcher-rpc''\'''' in RPC transport_url''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Successfully verified vhost ''watcher-rpc'' in RPC transport_url' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + grep -q watcher-rpc:' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | + echo ''Successfully verified username ''\''''watcher-rpc''\'''' in RPC transport_url''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | Successfully verified username ''watcher-rpc'' in RPC transport_url' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep -A 5 ''\[oslo_messaging_notifications\]''' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ grep transport_url' - ' logger.go:42: 09:39:40 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + notif_transport_url=''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + ''['' -z ''transport_url = rabbit://**********=1'' '']''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo ''Found notifications transport_url: transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Found notifications transport_url: transport_url = rabbit://**********=1' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + grep -q /watcher-notifications' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo ''Successfully verified vhost ''\''''watcher-notifications''\'''' in notifications transport_url''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Successfully verified vhost ''watcher-notifications'' in notifications transport_url' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + grep -q watcher-notifications:' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + echo ''Successfully verified username ''\''''watcher-notifications''\'''' in notifications transport_url''' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | Successfully verified username ''watcher-notifications'' in notifications transport_url' - ' logger.go:42: 09:39:41 | watcher-rmquser/1-deploy | + exit 0' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | running command: [sh -c set -euxo pipefail' - ' ' - ' # Wait for Watcher to be Ready' - ' kubectl wait --for=condition=Ready watcher/watcher-kuttl -n $NAMESPACE --timeout=300s' - ' ' - ' # Verify WatcherNotificationTransportURLReady condition exists and is True' - ' kubectl get watcher watcher-kuttl -n $NAMESPACE -o jsonpath=''{.status.conditions[?(@.type=="WatcherNotificationTransportURLReady")].status}'' | grep -q "True"' - ' echo "WatcherNotificationTransportURLReady condition is True"' - ' ' - ' # Count TransportURL CRs - should be exactly 2 (one for messaging, one for notifications)' - ' transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep "watcher-kuttl-watcher-transport" | wc -l)' - ' notification_transport_count=$(kubectl get transporturl -n $NAMESPACE -o name | grep "watcher-kuttl-watcher-notification" | wc -l)' - ' ' - ' if [ "$transport_count" -ne "1" ]; then' - ' echo "Expected 1 watcher-transport TransportURL, found $transport_count"' - ' exit 1' - ' fi' - ' ' - ' if [ "$notification_transport_count" -ne "1" ]; then' - ' echo "Expected 1 notification-transport TransportURL, found $notification_transport_count"' - ' exit 1' - ' fi' - ' ' - ' echo "Correctly found 2 TransportURLs (separate clusters: transport and notification)"' - ' ' - ' # Verify watcher-transport has correct user and vhost' - ' transport_user=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath=''{.spec.username}'')' - ' transport_vhost=$(kubectl get transporturl watcher-kuttl-watcher-transport -n $NAMESPACE -o jsonpath=''{.spec.vhost}'')' - ' if [ "$transport_user" != "watcher-rpc" ]; then' - ' echo "Expected watcher-transport username ''watcher-rpc'', found ''$transport_user''"' - ' exit 1' - ' fi' - ' if [ "$transport_vhost" != "watcher-rpc" ]; then' - ' echo "Expected watcher-transport vhost ''watcher-rpc'', found ''$transport_vhost''"' - ' exit 1' - ' fi' - ' echo "Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)"' - ' ' - ' # Verify notification-transport has correct user and vhost' - ' notif_user=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath=''{.spec.username}'')' - ' notif_vhost=$(kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n $NAMESPACE -o jsonpath=''{.spec.vhost}'')' - ' if [ "$notif_user" != "watcher-notifications" ]; then' - ' echo "Expected notification-transport username ''watcher-notifications'', found ''$notif_user''"' - ' exit 1' - ' fi' - ' if [ "$notif_vhost" != "watcher-notifications" ]; then' - ' echo "Expected notification-transport vhost ''watcher-notifications'', found ''$notif_vhost''"' - ' exit 1' - ' fi' - ' echo "Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)"' - ' ' - ' # Verify that watcher.conf contains the notifications transport_url' - ' WATCHER_API_POD=$(kubectl get pods -n $NAMESPACE -l "service=watcher-api" -o custom-columns=:metadata.name --no-headers | grep -v ^$ | head -1)' - ' if [ -z "${WATCHER_API_POD}" ]; then' - ' echo "No watcher-api pod found"' - ' exit 1' - ' fi' - ' # Verify RPC transport_url in DEFAULT section' - ' rpc_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -E ''^\[DEFAULT\]'' -A 50 | grep ''transport_url'' | head -1 || true)' - ' if [ -z "$rpc_transport_url" ]; then' - ' echo "transport_url not found in DEFAULT section"' - ' exit 1' - ' fi' - ' echo "Found RPC transport_url: $rpc_transport_url"' - ' ' - ' # Verify the RPC transport_url contains the correct vhost (watcher-rpc)' - ' if ! echo "$rpc_transport_url" | grep -q ''/watcher-rpc''; then' - ' echo "RPC transport_url does not contain expected vhost ''/watcher-rpc''"' - ' exit 1' - ' fi' - ' echo "Successfully verified vhost ''watcher-rpc'' in RPC transport_url"' - ' ' - ' # Verify the RPC transport_url contains the correct username (watcher-rpc)' - ' if ! echo "$rpc_transport_url" | grep -q ''watcher-rpc:''; then' - ' echo "RPC transport_url does not contain expected username ''watcher-rpc:''"' - ' exit 1' - ' fi' - ' echo "Successfully verified username ''watcher-rpc'' in RPC transport_url"' - ' ' - ' # Verify oslo_messaging_notifications section has transport_url configured' - ' notif_transport_url=$(kubectl exec -n $NAMESPACE ${WATCHER_API_POD} -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf | grep -A 5 ''\[oslo_messaging_notifications\]'' | grep ''transport_url'' || true)' - ' if [ -z "$notif_transport_url" ]; then' - ' echo "transport_url not found in oslo_messaging_notifications section"' - ' exit 1' - ' fi' - ' echo "Found notifications transport_url: $notif_transport_url"' - ' ' - ' # Verify the notifications transport_url contains the correct vhost (watcher-notifications)' - ' if ! echo "$notif_transport_url" | grep -q ''/watcher-notifications''; then' - ' echo "Notifications transport_url does not contain expected vhost ''/watcher-notifications''"' - ' exit 1' - ' fi' - ' echo "Successfully verified vhost ''watcher-notifications'' in notifications transport_url"' - ' ' - ' # Verify the notifications transport_url contains the correct username (watcher-notifications)' - ' if ! echo "$notif_transport_url" | grep -q ''watcher-notifications:''; then' - ' echo "Notifications transport_url does not contain expected username ''watcher-notifications:''"' - ' exit 1' - ' fi' - ' echo "Successfully verified username ''watcher-notifications'' in notifications transport_url"' - ' ' - ' exit 0' - ' ]' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + kubectl wait --for=condition=Ready watcher/watcher-kuttl -n watcher-kuttl-default --timeout=300s' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | watcher.watcher.openstack.org/watcher-kuttl condition met' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + kubectl get watcher watcher-kuttl -n watcher-kuttl-default -o ''jsonpath={.status.conditions[?(@.type=="WatcherNotificationTransportURLReady")].status}''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + grep -q True' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + echo ''WatcherNotificationTransportURLReady condition is True''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | WatcherNotificationTransportURLReady condition is True' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ wc -l' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-transport' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + transport_count=1' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl -n watcher-kuttl-default -o name' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ wc -l' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ grep watcher-kuttl-watcher-notification' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + notification_transport_count=1' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + ''['' 1 -ne 1 '']''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + ''['' 1 -ne 1 '']''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + echo ''Correctly found 2 TransportURLs (separate clusters: transport and notification)''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | Correctly found 2 TransportURLs (separate clusters: transport and notification)' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o ''jsonpath={.spec.username}''' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | + transport_user=watcher-rpc' - ' logger.go:42: 09:39:42 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-transport -n watcher-kuttl-default -o ''jsonpath={.spec.vhost}''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + transport_vhost=watcher-rpc' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' watcher-rpc ''!='' watcher-rpc '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' watcher-rpc ''!='' watcher-rpc '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Watcher transport has correct user (watcher-rpc) and vhost (watcher-rpc)' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o ''jsonpath={.spec.username}''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_user=watcher-notifications' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get transporturl watcher-kuttl-watcher-notification-rabbitmq-notifications -n watcher-kuttl-default -o ''jsonpath={.spec.vhost}''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_vhost=watcher-notifications' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' watcher-notifications ''!='' watcher-notifications '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' watcher-notifications ''!='' watcher-notifications '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Notification transport has correct user (watcher-notifications) and vhost (watcher-notifications)' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl get pods -n watcher-kuttl-default -l service=watcher-api -o custom-columns=:metadata.name --no-headers' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ head -1' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -v ''^$''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + WATCHER_API_POD=watcher-kuttl-api-0' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' -z watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -E ''^\[DEFAULT\]'' -A 50' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ head -1' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + rpc_transport_url=''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' -z ''transport_url = rabbit://**********=1'' '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Found RPC transport_url: transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Found RPC transport_url: transport_url = rabbit://**********=1' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q /watcher-rpc' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Successfully verified vhost ''\''''watcher-rpc''\'''' in RPC transport_url''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified vhost ''watcher-rpc'' in RPC transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q watcher-rpc:' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Successfully verified username ''\''''watcher-rpc''\'''' in RPC transport_url''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified username ''watcher-rpc'' in RPC transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ kubectl exec -n watcher-kuttl-default watcher-kuttl-api-0 -c watcher-api -- cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | ++ grep -A 5 ''\[oslo_messaging_notifications\]''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + notif_transport_url=''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + ''['' -z ''transport_url = rabbit://**********=1'' '']''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Found notifications transport_url: transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Found notifications transport_url: transport_url = rabbit://**********=1' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q /watcher-notifications' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Successfully verified vhost ''\''''watcher-notifications''\'''' in notifications transport_url''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified vhost ''watcher-notifications'' in notifications transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + grep -q watcher-notifications:' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''transport_url = rabbit://**********=1''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + echo ''Successfully verified username ''\''''watcher-notifications''\'''' in notifications transport_url''' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | Successfully verified username ''watcher-notifications'' in notifications transport_url' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | + exit 0' - ' logger.go:42: 09:39:43 | watcher-rmquser/1-deploy | test step completed 1-deploy' - ' logger.go:42: 09:39:43 | watcher-rmquser/2-cleanup-watcher | starting test step 2-cleanup-watcher' - ' logger.go:42: 09:39:49 | watcher-rmquser/2-cleanup-watcher | test step completed 2-cleanup-watcher' - ' logger.go:42: 09:39:49 | watcher-rmquser | skipping kubernetes event logging' - === CONT kuttl/harness/watcher - ' logger.go:42: 09:39:49 | watcher | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:39:49 | watcher/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:39:49 | watcher/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | starting test step 1-deploy-with-defaults' - ' logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:49 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:52 | watcher/1-deploy-with-defaults | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:53 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:55 | watcher/1-deploy-with-defaults | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:39:56 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:39:58 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f' - ' logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + ''['' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f '']''' - ' logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:40:00 | watcher/1-deploy-with-defaults | + ''['' -n '''' '']''' - ' logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:40:01 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:40:03 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f' - ' logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | + ''['' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f '']''' - ' logger.go:42: 09:40:05 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ grep -c ''region_name = regionOne''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + ''['' 9 -ge 1 '']''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:40:06 | watcher/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:40:07 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:40:09 | watcher/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + ''['' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f '']''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:11 | watcher/1-deploy-with-defaults | ++ grep -c ''region_name = regionOne''' - ' logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + ''['' 9 -ge 1 '']''' - ' logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:40:12 | watcher/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:40:13 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:40:15 | watcher/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + ''['' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f '']''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:17 | watcher/1-deploy-with-defaults | ++ grep -c ''region_name = regionOne''' - ' logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + ''['' 9 -ge 1 '']''' - ' logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:40:18 | watcher/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.my\.cnf}''|base64 -d|grep -c ''ssl=1'')" == 1 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem'')" == 2 ]' - ' [ "$(oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o jsonpath=''{.data.00-default\.conf}''|base64 -d|grep -c ''region_name = regionOne'')" -ge 1 ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:40:19 | watcher/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:40:21 | watcher/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + SERVICEID=55dad13ac5da4c7fbfa109c6b4aa619f' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + ''['' 55dad13ac5da4c7fbfa109c6b4aa619f == 55dad13ac5da4c7fbfa109c6b4aa619f '']''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.my\.cnf}''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ grep -c ssl=1' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:23 | watcher/1-deploy-with-defaults | ++ grep -c ''cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ grep -c ''region_name = regionOne''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ base64 -d' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default secret watcher-kuttl-api-config-data -o ''jsonpath={.data.00-default\.conf}''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + ''['' 9 -ge 1 '']''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:40:24 | watcher/1-deploy-with-defaults | test step completed 1-deploy-with-defaults' - ' logger.go:42: 09:40:24 | watcher/2-cleanup-watcher | starting test step 2-cleanup-watcher' - ' logger.go:42: 09:40:24 | watcher/2-cleanup-watcher | test step completed 2-cleanup-watcher' - ' logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | starting test step 3-precreate-mariadbaccount' - ' logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | MariaDBAccount:watcher-kuttl-default/watcher-precreated created' - ' logger.go:42: 09:40:24 | watcher/3-precreate-mariadbaccount | test step completed 3-precreate-mariadbaccount' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | starting test step 4-deploy-with-precreated-account' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Secret:wa**********ig created' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:24 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | error: Internal error occurred: error executing command in container: container is not created or running' - ' logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | ++ echo' - ' logger.go:42: 09:40:25 | watcher/4-deploy-with-precreated-account | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:29 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:30 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:31 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:32 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:33 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:34 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:35 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:35 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:36 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:37 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:38 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:39 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:39 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:40 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:41 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:42 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:44 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:45 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:46 | watcher/4-deploy-with-precreated-account | + APIPOD=' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | error: unable to upgrade connection: container not found ("watcher-api")' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | ++ echo' - ' logger.go:42: 09:40:47 | watcher/4-deploy-with-precreated-account | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:48 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:40:49 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:40:51 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:40:52 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:40:52 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:40:53 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:40:54 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:55 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:40:56 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:40:57 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:40:58 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:00 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:41:01 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:41:02 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:41:03 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:41:04 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:41:05 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | running command: [sh -c set -euxo pipefail' - ' oc project watcher-kuttl-default' - ' APIPOD=$(oc get pods -n watcher-kuttl-default -l "service=watcher-api" -ocustom-columns=:metadata.name|grep -v ^$|head -1)' - ' if [ -n "${APIPOD}" ]; then' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/01-global-custom.conf) |grep -c "^# Global config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/02-service-custom.conf) |grep -c "^# Service config") == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/watcher/watcher.conf.d/00-default.conf) |grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem'') == 1 ]' - ' [ $(echo $(oc rsh -c watcher-api ${APIPOD} cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf) |grep -czPo ''TimeOut 80'') == 1 ]' - ' else' - ' exit 1' - ' fi' - ' ]' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + oc project watcher-kuttl-default' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | Already on project "watcher-kuttl-default" on server "https://api.crc.testing:6443".' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ oc get pods -n watcher-kuttl-default -l service=watcher-api -ocustom-columns=:metadata.name' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ head -1' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -v ''^$''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + APIPOD=watcher-kuttl-api-0' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + ''['' -n watcher-kuttl-api-0 '']''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Global config''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/01-global-custom.conf' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Global config' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -c ''^# Service config''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/02-service-custom.conf' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' Service config' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''\[prometheus_client\]\s+host\s+=\s+metric-storage-prometheus.watcher-kuttl-default.svc\s+port\s+=\s+9090\s+cafile\s+=\s+/etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/watcher/watcher.conf.d/00-default.conf' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ echo ''[DEFAULT]'' state_path = /var/lib/watcher transport_url = ''rabbit://**********=1'' control_exchange = watcher debug = True log_file = /var/log/watcher/watcher-kuttl-api.log ''#'' empty notification_level means that no notification will be sent notification_level = ''[database]'' connection = ''mysql+pymysql://watcher_test:8df261d072f382ca7aeb59823b1f461f@openstack.watcher-kuttl-default.svc/watcher?read_default_file=/etc/my.cnf'' ''[oslo_policy]'' policy_file = /etc/watcher/policy.yaml.sample ''[oslo_messaging_notifications]'' driver = noop ''[oslo_messaging_rabbit]'' rabbit_quorum_queue=true rabbit_transient_quorum_queue=true amqp_durable_queues=true ''[keystone_authtoken]'' memcached_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 tls_enabled=true memcache_tls_certfile = /etc/pki/tls/certs/mtls.crt memcache_tls_keyfile = /etc/pki/tls/private/mtls.key memcache_tls_cafile = /etc/pki/tls/certs/mtls-ca.crt memcache_tls_enabled = true project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal region_name = regionOne cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[watcher_clients_auth]'' project_domain_name = Default project_name = service user_domain_name = Default password = pa**********rd username = watcher auth_type = password auth_url = https://keystone-internal.watcher-kuttl-default.svc:5000 interface = internal cafile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem ''[oslo_concurrency]'' lock_path = /var/lib/watcher/tmp ''[watcher_datasources]'' datasources = prometheus ''[cache]'' backend = oslo_cache.memcache_pool memcache_servers=memcached-0.memcached.watcher-kuttl-default.svc:11212 memcache_socket_timeout = 0.5 memcache_pool_connection_get_timeout = 1 enabled=true tls_enabled=true tls_certfile=/etc/pki/tls/certs/mtls.crt tls_keyfile=/etc/pki/tls/private/mtls.key tls_cafile=/etc/pki/tls/certs/mtls-ca.crt memcache_dead_retry = 30 ''[prometheus_client]'' host = metric-storage-prometheus.watcher-kuttl-default.svc port = 9090 cafile = /etc/pki/ca-trust/extracted/pem/prometheus/internal-ca-bundle.pem ''[aetos_client]'' endpoint_type = internal region_name = regionOne ''[cinder_client]'' endpoint_type = internal region_name = regionOne ''[glance_client]'' endpoint_type = internal region_name = regionOne ''[ironic_client]'' endpoint_type = internal region_name = regionOne ''[keystone_client]'' interface = internal region_name = regionOne ''[neutron_client]'' endpoint_type = internal region_name = regionOne ''[nova_client]'' endpoint_type = internal region_name = regionOne ''[placement_client]'' interface = internal region_name = regionOne ''[watcher_cluster_data_model_collectors.compute]'' period = 900 ''[watcher_cluster_data_model_collectors.baremetal]'' period = 900 ''[watcher_cluster_data_model_collectors.storage]'' period = 900' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | ++ grep -czPo ''TimeOut 80''' - ' logger.go:42: 09:41:07 | watcher/4-deploy-with-precreated-account | +++ oc rsh -c watcher-api watcher-kuttl-api-0 cat /etc/httpd/conf.d/10-watcher-wsgi-main.conf' - ' logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | ++ echo ''#'' internal vhost watcher-internal.watcher-kuttl-default.svc configuration '''' ServerName watcher-internal.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess internal display-name=internal group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup internal WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' '''' ''#'' public vhost watcher-public.watcher-kuttl-default.svc configuration '''' ServerName watcher-public.watcher-kuttl-default.svc ''##'' Vhost docroot DocumentRoot ''"/var/www/cgi-bin"'' ''#'' Set the timeout for the watcher-api TimeOut 80 ''##'' Directories, there should at least be a declaration for /var/www/cgi-bin '''' Options -Indexes +FollowSymLinks +MultiViews AllowOverride None Require all granted '''' ''##'' Logging ErrorLog /dev/stdout ServerSignature Off CustomLog /dev/stdout combined ''env=!forwarded'' CustomLog /dev/stdout proxy env=forwarded ''##'' set watcher log level to debug LogLevel debug ''##'' WSGI configuration WSGIApplicationGroup ''%{GLOBAL}'' WSGIDaemonProcess public display-name=public group=watcher processes=2 threads=1 user=watcher WSGIProcessGroup public WSGIScriptAlias / ''"/usr/bin/watcher-api-wsgi"'' ''''' - ' logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:41:08 | watcher/4-deploy-with-precreated-account | test step completed 4-deploy-with-precreated-account' - ' logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | starting test step 5-cleanup-watcher' - ' logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:41:08 | watcher/5-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:41:11 | watcher/5-cleanup-watcher | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:41:13 | watcher/5-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:41:15 | watcher/5-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:41:16 | watcher/5-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:41:18 | watcher/5-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:41:18 | watcher/5-cleanup-watcher | test step completed 5-cleanup-watcher' - ' logger.go:42: 09:41:18 | watcher | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-cinder - ' logger.go:42: 09:41:18 | watcher-cinder | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:41:18 | watcher-cinder/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:41:18 | watcher-cinder/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | starting test step 1-deploy-watcher-no-cinder' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:18 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:19 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:20 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:20 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:21 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:22 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:23 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:24 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:25 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:26 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:27 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:27 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:28 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:29 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:30 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:31 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:32 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:33 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:34 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:35 | watcher-cinder/1-deploy-watcher-no-cinder | error: error from server (NotFound): pods "watcher-kuttl-decision-engine-0" not found in namespace "watcher-kuttl-default"' - ' logger.go:42: 09:41:35 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | Error from server (BadRequest): container "watcher-decision-engine" in pod "watcher-kuttl-decision-engine-0" is waiting to start: ContainerCreating' - ' logger.go:42: 09:41:36 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:37 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:38 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:39 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:40 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 1 == 2 '']''' - ' logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:41 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:42 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:43 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:44 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:45 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 | grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:41:47 | watcher-cinder/1-deploy-watcher-no-cinder | test step completed 1-deploy-watcher-no-cinder' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | starting test step 2-deploy-cinder' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | OpenStackControlPlane:watcher-kuttl-default/openstack updated' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:47 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:48 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:49 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:50 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:51 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:52 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:53 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:54 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:55 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:56 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:57 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:58 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:41:59 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:00 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:01 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:02 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:03 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:05 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:06 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:07 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:08 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:09 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:10 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:11 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:12 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:13 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:14 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:15 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:16 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:17 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:18 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:19 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:20 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:21 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:22 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:23 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:24 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:25 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:26 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:27 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:28 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:29 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:30 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:31 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:32 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:33 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:34 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:35 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:36 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:37 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:38 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:39 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:40 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:41 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:42 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:43 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:44 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:45 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:46 | watcher-cinder/2-deploy-cinder | + ''['' 2 == 0 '']''' - ' logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:47 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:48 | watcher-cinder/2-deploy-cinder | Error from server (BadRequest): container "watcher-decision-engine" in pod "watcher-kuttl-decision-engine-0" is waiting to start: ContainerCreating' - ' logger.go:42: 09:42:48 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:49 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:50 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:51 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:52 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:54 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:55 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:56 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:57 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:58 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision detects that there is a cinder service and' - ' # does not log that storage collector is skipped' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 0 ]' - ' ]' - ' logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:42:59 | watcher-cinder/2-deploy-cinder | test step completed 2-deploy-cinder' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | starting test step 3-remove-cinder' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | OpenStackControlPlane:watcher-kuttl-default/openstack updated' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:42:59 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:00 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:01 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:02 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:03 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:04 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:05 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | Error from server (BadRequest): container "watcher-decision-engine" in pod "watcher-kuttl-decision-engine-0" is waiting to start: ContainerCreating' - ' logger.go:42: 09:43:06 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:07 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:08 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:09 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:10 | watcher-cinder/3-remove-cinder | + ''['' 0 == 2 '']''' - ' logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:11 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:12 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:13 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:14 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:15 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:16 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:17 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | running command: [sh -c set -euxo pipefail' - ' # check that the decision engine correctly detects that there is no cinder service' - ' [ "$(oc logs -n $NAMESPACE watcher-kuttl-decision-engine-0 |grep -c ''Block storage service is not enabled, skipping storage collector'')" == 2 ]' - ' ]' - ' logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | ++ oc logs -n watcher-kuttl-default watcher-kuttl-decision-engine-0' - ' logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | ++ grep -c ''Block storage service is not enabled, skipping storage collector''' - ' logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | + ''['' 2 == 2 '']''' - ' logger.go:42: 09:43:18 | watcher-cinder/3-remove-cinder | test step completed 3-remove-cinder' - ' logger.go:42: 09:43:18 | watcher-cinder/4-cleanup-watcher | starting test step 4-cleanup-watcher' - ' logger.go:42: 09:43:30 | watcher-cinder/4-cleanup-watcher | test step completed 4-cleanup-watcher' - ' logger.go:42: 09:43:30 | watcher-cinder | skipping kubernetes event logging' - === CONT kuttl/harness/watcher-api-scaling - ' logger.go:42: 09:43:30 | watcher-api-scaling | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:43:30 | watcher-api-scaling/0-cleanup-watcher | starting test step 0-cleanup-watcher' - ' logger.go:42: 09:43:30 | watcher-api-scaling/0-cleanup-watcher | test step completed 0-cleanup-watcher' - ' logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | starting test step 1-deploy-with-defaults' - ' logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | Watcher:watcher-kuttl-default/watcher-kuttl created' - ' logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:30 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:32 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:33 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:35 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 0 == 1 '']''' - ' logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:37 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:43:39 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1' - ' logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 '']''' - ' logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:43:41 | watcher-api-scaling/1-deploy-with-defaults | + ''['' -n '''' '']''' - ' logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:42 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:43:44 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:43:46 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1' - ' logger.go:42: 09:43:46 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 '']''' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:43:47 | watcher-api-scaling/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:48 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:43:50 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 '']''' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:43:52 | watcher-api-scaling/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:53 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:43:55 | watcher-api-scaling/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 '']''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:43:58 | watcher-api-scaling/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | running command: [sh -c set -euxo pipefail' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type |[ $(grep -c ^watcher) == 1 ]' - ' SERVICEID=$(oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID | grep watcher| awk ''{print $1}'')' - ' [ $(oc get -n watcher-kuttl-default keystoneservice watcher -o jsonpath={.status.serviceID}) == ${SERVICEID} ]' - ' [ -n "$(oc get -n watcher-kuttl-default watcher watcher-kuttl -o jsonpath={.status.hash.dbsync})" ]' - ' # If we are running the container locally, skip following test' - ' if [ "$(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher)" == "" ]; then' - ' exit 0' - ' fi' - ' env_variables=$(oc set env $(oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher) -n openstack-operators --list)' - ' counter=0' - ' for i in ${env_variables}; do' - ' if echo ${i} | grep ''_URL_DEFAULT'' &> /dev/null; then' - ' echo ${i}' - ' counter=$((counter + 1))' - ' fi' - ' done' - ' if [ ${counter} -lt 3 ]; then' - ' echo "Error: Less than 3 _URL_DEFAULT variables found."' - ' exit 1' - ' else' - ' echo "Success: ${counter} _URL_DEFAULT variables found."' - ' fi' - ' ]' - ' logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:43:59 | watcher-api-scaling/1-deploy-with-defaults | ++ grep -c ''^watcher''' - ' logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 1 == 1 '']''' - ' logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ grep watcher' - ' logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ awk ''{print $1}''' - ' logger.go:42: 09:44:01 | watcher-api-scaling/1-deploy-with-defaults | ++ oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type -c ID' - ' logger.go:42: 09:44:03 | watcher-api-scaling/1-deploy-with-defaults | + SERVICEID=86b564fd237a41c2b773bfe0f05b75f1' - ' logger.go:42: 09:44:03 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default keystoneservice watcher -o ''jsonpath={.status.serviceID}''' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + ''['' 86b564fd237a41c2b773bfe0f05b75f1 == 86b564fd237a41c2b773bfe0f05b75f1 '']''' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get -n watcher-kuttl-default watcher watcher-kuttl -o ''jsonpath={.status.hash.dbsync}''' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + ''['' -n n65fh675hf5h5f5h644h597h657h5d9h684h685h699h9fhd7h78h5d5h5c5h668h4h8bhc8h664h66fh6bh668h99h64fh564h5cbh5dfh8h7h5bdq '']''' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | ++ oc get pods -n openstack-operators -o name -l openstack.org/operator-name=watcher' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + ''['' '''' == '''' '']''' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | + exit 0' - ' logger.go:42: 09:44:04 | watcher-api-scaling/1-deploy-with-defaults | test step completed 1-deploy-with-defaults' - ' logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | starting test step 2-scale-up-watcher-api' - ' logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/replicas", "value":3}]''' - ' ]' - ' logger.go:42: 09:44:04 | watcher-api-scaling/2-scale-up-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:44:15 | watcher-api-scaling/2-scale-up-watcher-api | test step completed 2-scale-up-watcher-api' - ' logger.go:42: 09:44:15 | watcher-api-scaling/3-scale-down-watcher-api | starting test step 3-scale-down-watcher-api' - ' logger.go:42: 09:44:15 | watcher-api-scaling/3-scale-down-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/replicas", "value":1}]''' - ' ]' - ' logger.go:42: 09:44:16 | watcher-api-scaling/3-scale-down-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:44:19 | watcher-api-scaling/3-scale-down-watcher-api | test step completed 3-scale-down-watcher-api' - ' logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | starting test step 4-scale-down-zero-watcher-api' - ' logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | running command: [sh -c oc patch watcher -n $NAMESPACE watcher-kuttl --type=''json'' -p=''[{"op": "replace", "path": "/spec/apiServiceTemplate/replicas", "value":0}]''' - ' ]' - ' logger.go:42: 09:44:19 | watcher-api-scaling/4-scale-down-zero-watcher-api | watcher.watcher.openstack.org/watcher-kuttl patched' - ' logger.go:42: 09:44:20 | watcher-api-scaling/4-scale-down-zero-watcher-api | test step completed 4-scale-down-zero-watcher-api' - ' logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | starting test step 5-cleanup-watcher' - ' logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:44:20 | watcher-api-scaling/5-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:44:22 | watcher-api-scaling/5-cleanup-watcher | + ''['' 1 == 0 '']''' - ' logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | running command: [sh -c set -ex' - ' oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type | [ $(grep -c ^watcher) == 0 ]' - ' ]' - ' logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | + oc exec -n watcher-kuttl-default openstackclient -- openstack service list -f value -c Name -c Type' - ' logger.go:42: 09:44:24 | watcher-api-scaling/5-cleanup-watcher | ++ grep -c ''^watcher''' - ' logger.go:42: 09:44:26 | watcher-api-scaling/5-cleanup-watcher | + ''['' 0 == 0 '']''' - ' logger.go:42: 09:44:26 | watcher-api-scaling/5-cleanup-watcher | test step completed 5-cleanup-watcher' - ' logger.go:42: 09:44:26 | watcher-api-scaling | skipping kubernetes event logging' - === CONT kuttl/harness/deps - ' logger.go:42: 09:44:26 | deps | Ignoring infra.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | deps | Ignoring keystone.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | deps | Ignoring kustomization.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | deps | Ignoring namespace.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | deps | Ignoring telemetry.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | deps | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:44:26 | deps | skipping kubernetes event logging' - === CONT kuttl/harness/common - ' logger.go:42: 09:44:26 | common | Ignoring cleanup-assert.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | common | Ignoring cleanup-errors.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | common | Ignoring cleanup-watcher.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | common | Ignoring deploy-with-defaults.yaml as it does not match file name regexp: ^(\d+)-(?:[^\.]+)(?:\.yaml)?$' - ' logger.go:42: 09:44:26 | common | Skipping creation of user-supplied namespace: watcher-kuttl-default' - ' logger.go:42: 09:44:26 | common | skipping kubernetes event logging' - === NAME kuttl - ' harness.go:406: run tests finished' - ' harness.go:514: cleaning up' - ' harness.go:571: removing temp folder: ""' - '--- FAIL: kuttl (1507.06s)' - ' --- FAIL: kuttl/harness (0.00s)' - ' --- FAIL: kuttl/harness/appcred-tests (951.33s)' - ' --- PASS: kuttl/harness/watcher-notification (40.72s)' - ' --- PASS: kuttl/harness/watcher-topology (33.46s)' - ' --- PASS: kuttl/harness/watcher-tls-certs-change (35.80s)' - ' --- PASS: kuttl/harness/watcher-tls (134.34s)' - ' --- PASS: kuttl/harness/watcher-rmquser (34.76s)' - ' --- PASS: kuttl/harness/watcher (88.99s)' - ' --- PASS: kuttl/harness/watcher-cinder (131.87s)' - ' --- PASS: kuttl/harness/watcher-api-scaling (55.74s)' - ' --- PASS: kuttl/harness/deps (0.00s)' - ' --- PASS: kuttl/harness/common (0.02s)' - FAIL 2026-03-14 09:44:27,526 p=40887 u=zuul n=ansible | NO MORE HOSTS LEFT ************************************************************* 2026-03-14 09:44:27,527 p=40887 u=zuul n=ansible | PLAY RECAP ********************************************************************* 2026-03-14 09:44:27,527 p=40887 u=zuul n=ansible | controller : ok=2 changed=0 unreachable=0 failed=1 skipped=1 rescued=0 ignored=0 2026-03-14 09:44:27,527 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:44:27 +0000 (0:25:08.820) 0:25:09.223 ******** 2026-03-14 09:44:27,527 p=40887 u=zuul n=ansible | =============================================================================== 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | run kuttl test suite from operator Makefile -------------------------- 1508.82s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | run_hook : Loop on hooks for pre_kuttl_from_operator -------------------- 0.15s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | run_hook : Assert single hooks are all mappings ------------------------- 0.11s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | run_hook : Assert parameters are valid ---------------------------------- 0.07s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | Run hooks before running kuttl tests ------------------------------------ 0.03s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | Saturday 14 March 2026 09:44:27 +0000 (0:25:08.820) 0:25:09.222 ******** 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | =============================================================================== 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | ansible.builtin.command ---------------------------------------------- 1508.82s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | run_hook ---------------------------------------------------------------- 0.32s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | ansible.builtin.include_role -------------------------------------------- 0.03s 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2026-03-14 09:44:27,528 p=40887 u=zuul n=ansible | total ---------------------------------------------------------------- 1509.18s