From 42e1778c57bd12d3974e77e69e127af6b699c545 Mon Sep 17 00:00:00 2001 From: rhjcd Date: Sun, 12 Jul 2026 11:25:47 -0700 Subject: [PATCH 1/2] Fix 6 workload bugs found during EE sweep testing - containerlab: remove stray wget prefix and trailing quote from RPM URL - control-user: guard report-user-data on control_user_password defined - host-ocp4-installer: only emit cpuPartitioningMode when defined - ansible-bu-workshop: disable become on localhost workloads play - gitea-operator: bump catalog image tag v2.0.1 to v2.3.2 - showroom: guard certbot_cert_manager_* fallback vars with default('') --- ansible/configs/ansible-bu-workshop/workloads.yml | 2 +- ansible/roles/containerlab/tasks/main.yml | 2 +- ansible/roles/control-user/tasks/report-user-data.yml | 1 + .../templates/install-config.yaml.j2 | 4 +++- .../base_service_traefik_httpd.j2 | 10 +++++----- .../ocp4_workload_gitea_operator/defaults/main.yml | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/ansible/configs/ansible-bu-workshop/workloads.yml b/ansible/configs/ansible-bu-workshop/workloads.yml index 2ed3f44396..e472899ff0 100644 --- a/ansible/configs/ansible-bu-workshop/workloads.yml +++ b/ansible/configs/ansible-bu-workshop/workloads.yml @@ -2,7 +2,7 @@ - name: Install {{ _workload_title_ }} workloads on localhost hosts: localhost gather_facts: false - become: true + become: false tasks: - name: Deploying {{ _workload_title_ }} workloads on localhost when: _workloads_.localhost | default("") | length > 0 diff --git a/ansible/roles/containerlab/tasks/main.yml b/ansible/roles/containerlab/tasks/main.yml index c7e16b65d1..546df6897d 100644 --- a/ansible/roles/containerlab/tasks/main.yml +++ b/ansible/roles/containerlab/tasks/main.yml @@ -15,7 +15,7 @@ - name: Fetch stable containerlab RPM ansible.builtin.get_url: - url: wget https://github.com/srl-labs/containerlab/releases/download/v0.71.0/containerlab_0.71.0_linux_amd64.rpm" + url: https://github.com/srl-labs/containerlab/releases/download/v0.71.0/containerlab_0.71.0_linux_amd64.rpm dest: /tmp/containerlab_0.71.0_linux_amd64.rpm mode: '0644' diff --git a/ansible/roles/control-user/tasks/report-user-data.yml b/ansible/roles/control-user/tasks/report-user-data.yml index 31574c52fd..6880736465 100644 --- a/ansible/roles/control-user/tasks/report-user-data.yml +++ b/ansible/roles/control-user/tasks/report-user-data.yml @@ -1,5 +1,6 @@ --- - name: Report user data + when: control_user_password is defined throttle: 1 agnosticd_user_info: data: >- diff --git a/ansible/roles/host-ocp4-installer/templates/install-config.yaml.j2 b/ansible/roles/host-ocp4-installer/templates/install-config.yaml.j2 index cb2600cfa0..0b1e447684 100644 --- a/ansible/roles/host-ocp4-installer/templates/install-config.yaml.j2 +++ b/ansible/roles/host-ocp4-installer/templates/install-config.yaml.j2 @@ -3,7 +3,9 @@ apiVersion: v1 metadata: name: {{ cluster_name | to_json }} baseDomain: {{ ocp4_base_domain | to_json }} -cpuPartitioningMode: {{ ocp4_cpu_partitioning_mode | default('None') | to_json }} +{% if ocp4_cpu_partitioning_mode is defined %} +cpuPartitioningMode: {{ ocp4_cpu_partitioning_mode | to_json }} +{% endif %} fips: {{ ocp4_fips_enable | bool | to_json }} controlPlane: name: master diff --git a/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 b/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 index d608f601e5..ab0ac9b4d8 100644 --- a/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 +++ b/ansible/roles/showroom/templates/base_service_traefik_httpd/base_service_traefik_httpd.j2 @@ -1,11 +1,11 @@ -{% set _provider = (showroom_tls_provider | default(certbot_cert_manager_provider, true) | default('zerossl')) | lower %} +{% set _provider = (showroom_tls_provider | default(certbot_cert_manager_provider | default('zerossl'), true) | default('zerossl')) | lower %} {% if _provider == 'zerossl' %} -{% set _caserver = showroom_acme_zerossl_caserver | default(certbot_cert_manager_acme_url, true) %} +{% set _caserver = showroom_acme_zerossl_caserver | default(certbot_cert_manager_acme_url | default(''), true) %} {% set _challenge = showroom_acme_zerossl_acme_challenge %} -{% set _zerossl_eab_kid = showroom_acme_zerossl_eab_kid | default(certbot_cert_manager_zerossl_eab_key_id, true) %} -{% set _zerossl_eab_hmac = showroom_acme_zerossl_eab_hmac_key | default(certbot_cert_manager_zerossl_hmac_key, true) %} +{% set _zerossl_eab_kid = showroom_acme_zerossl_eab_kid | default(certbot_cert_manager_zerossl_eab_key_id | default(''), true) %} +{% set _zerossl_eab_hmac = showroom_acme_zerossl_eab_hmac_key | default(certbot_cert_manager_zerossl_hmac_key | default(''), true) %} {% elif _provider == 'letsencrypt' %} -{% set _caserver = showroom_acme_letsencrypt_caserver | default(certbot_cert_manager_acme_url, true) %} +{% set _caserver = showroom_acme_letsencrypt_caserver | default(certbot_cert_manager_acme_url | default(''), true) %} {% set _challenge = showroom_acme_letsencrypt_acme_challenge %} {% set _zerossl_eab_kid = '' %} {% set _zerossl_eab_hmac = '' %} diff --git a/ansible/roles_ocp_workloads/ocp4_workload_gitea_operator/defaults/main.yml b/ansible/roles_ocp_workloads/ocp4_workload_gitea_operator/defaults/main.yml index 6f3745ae93..4738cd957d 100644 --- a/ansible/roles_ocp_workloads/ocp4_workload_gitea_operator/defaults/main.yml +++ b/ansible/roles_ocp_workloads/ocp4_workload_gitea_operator/defaults/main.yml @@ -26,7 +26,7 @@ ocp4_workload_gitea_operator_starting_csv: "" ocp4_workload_gitea_operator_catalog_image: quay.io/rhpds/gitea-catalog # Catalog image tag -ocp4_workload_gitea_operator_catalog_image_tag: v2.0.1 +ocp4_workload_gitea_operator_catalog_image_tag: v2.3.2 # ----------------------------------- # Deploy and customize Gitea Instance From 49815b1ede1bca2936d7a585f71e52f9d251d5ae Mon Sep 17 00:00:00 2001 From: rhjcd Date: Sun, 12 Jul 2026 12:10:10 -0700 Subject: [PATCH 2/2] Handle _AnsibleTaggedStr in agnosticd_user_info json serialization ansible-core 2.19 introduces _AnsibleTaggedStr which breaks json.dumps() calls. Adding default=str allows serialization of these tagged string types without data loss. --- ansible/action_plugins/agnosticd_user_info.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ansible/action_plugins/agnosticd_user_info.py b/ansible/action_plugins/agnosticd_user_info.py index e197ec6918..04fde4b633 100644 --- a/ansible/action_plugins/agnosticd_user_info.py +++ b/ansible/action_plugins/agnosticd_user_info.py @@ -120,10 +120,10 @@ def run(self, tmp=None, task_vars=None): if not user and body != None: with open(os.path.join(output_dir, f'{action}-user-body.yaml'), 'a') as fh: - fh.write('- ' + json.dumps(body) + "\n") + fh.write('- ' + json.dumps(body, default=str) + "\n") if data or user: - data = json.loads(json.dumps(data)) + data = json.loads(json.dumps(data, default=str)) user_data = None try: with open(os.path.join(output_dir, f'{action}-user-data.yaml'), 'r') as fh: