all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe89:820
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 71c2200b-41ff-42ea-b6e6-0e858122fda4
        host_id: d2c528664e1bd332192bb574345deb0c6c7158061222e4a6c036b5ef
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe89:820
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.171
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.136
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe89:820
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 explicit: None implied: None source: osism/testbed/.zuul.yaml@main#325>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 3fe27c697534451b973f9368dde21422
      build_refs:
      - branch: main
        change: '2924'
        change_message: "check: make key-value store check release-aware\n\n## What\n\nMake
          the post-upgrade key-value store check in\n`scripts/check/200-infrastructure.sh`
          release-aware instead of hardcoding a\nredis-era check.\n\n## Why\n\nThe
          infrastructure check sweep validated the key-value store with a single\nhardcoded
          line that always spoke redis on `192.168.16.10:6379` using the\nredis-era
          master password. Unlike the MariaDB and RabbitMQ checks in the same\nfile,
          it had no release conditional.\n\nAt OpenStack 2025.2, upstream kolla-ansible
          replaced redis with valkey, and the\nvalkey role uses a **distinct** `valkey_master_password`.
          After the upgrade the\ncheck's hardcoded redis password fails `AUTH`, `check_tcp`
          reports an unexpected\nresponse, and the whole build fails on the only non-conditional
          check in the\nfile.\n\nFirst observed on `testbed-upgrade-stable-next-ubuntu-24.04`
          (periodic-midnight)\nbuild `3c209b90` \u2014 the first run in which the
          redis\u2192valkey upgrade wall cleared\nand the check was ever exercised
          against valkey. Elasticsearch, MariaDB,\nPrometheus, and RabbitMQ all passed;
          the redis check was the sole failure.\n\n## How\n\n- Source `include.sh`
          and select the active service with `valkey_or_redis()` \u2014\n  the same
          OpenStack-release signal `deploy/200` and `upgrade/200` already use.\n-
          Read the matching `${store}_master_password` from `secrets.yml` instead
          of\n  embedding a literal. Using the single source of truth removes the
          duplication\n  that caused the drift, so the check follows the deployed
          service and won't\n  re-break the next time a password changes.\n\nPort,
          host, and `INFO replication` expectations are unchanged: valkey preserves\nthe
          redis wire format and the testbed topology is the same.\n\n## Verification\n\n-
          `shellcheck` clean; `bash -n` OK.\n- Password extraction confirmed against
          `secrets.yml`: `redis` resolves to the\n  exact value previously hardcoded
          (redis-era releases unaffected), `valkey`\n  resolves to its distinct password.\n-
          Full live valkey `check_tcp` round-trip still needs a\n  `testbed-upgrade-stable-next-ubuntu-24.04`
          run to exercise end-to-end \u2014 hence\n  draft.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/testbed/pull/2924
        commit_id: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        patchset: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      buildset: cf405582dfd944da97b5a3dbcb63aa03
      buildset_refs:
      - branch: main
        change: '2924'
        change_message: "check: make key-value store check release-aware\n\n## What\n\nMake
          the post-upgrade key-value store check in\n`scripts/check/200-infrastructure.sh`
          release-aware instead of hardcoding a\nredis-era check.\n\n## Why\n\nThe
          infrastructure check sweep validated the key-value store with a single\nhardcoded
          line that always spoke redis on `192.168.16.10:6379` using the\nredis-era
          master password. Unlike the MariaDB and RabbitMQ checks in the same\nfile,
          it had no release conditional.\n\nAt OpenStack 2025.2, upstream kolla-ansible
          replaced redis with valkey, and the\nvalkey role uses a **distinct** `valkey_master_password`.
          After the upgrade the\ncheck's hardcoded redis password fails `AUTH`, `check_tcp`
          reports an unexpected\nresponse, and the whole build fails on the only non-conditional
          check in the\nfile.\n\nFirst observed on `testbed-upgrade-stable-next-ubuntu-24.04`
          (periodic-midnight)\nbuild `3c209b90` \u2014 the first run in which the
          redis\u2192valkey upgrade wall cleared\nand the check was ever exercised
          against valkey. Elasticsearch, MariaDB,\nPrometheus, and RabbitMQ all passed;
          the redis check was the sole failure.\n\n## How\n\n- Source `include.sh`
          and select the active service with `valkey_or_redis()` \u2014\n  the same
          OpenStack-release signal `deploy/200` and `upgrade/200` already use.\n-
          Read the matching `${store}_master_password` from `secrets.yml` instead
          of\n  embedding a literal. Using the single source of truth removes the
          duplication\n  that caused the drift, so the check follows the deployed
          service and won't\n  re-break the next time a password changes.\n\nPort,
          host, and `INFO replication` expectations are unchanged: valkey preserves\nthe
          redis wire format and the testbed topology is the same.\n\n## Verification\n\n-
          `shellcheck` clean; `bash -n` OK.\n- Password extraction confirmed against
          `secrets.yml`: `redis` resolves to the\n  exact value previously hardcoded
          (redis-era releases unaffected), `valkey`\n  resolves to its distinct password.\n-
          Full live valkey `check_tcp` round-trip still needs a\n  `testbed-upgrade-stable-next-ubuntu-24.04`
          run to exercise end-to-end \u2014 hence\n  draft.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/testbed/pull/2924
        commit_id: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        patchset: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      change: '2924'
      change_message: "check: make key-value store check release-aware\n\n## What\n\nMake
        the post-upgrade key-value store check in\n`scripts/check/200-infrastructure.sh`
        release-aware instead of hardcoding a\nredis-era check.\n\n## Why\n\nThe infrastructure
        check sweep validated the key-value store with a single\nhardcoded line that
        always spoke redis on `192.168.16.10:6379` using the\nredis-era master password.
        Unlike the MariaDB and RabbitMQ checks in the same\nfile, it had no release
        conditional.\n\nAt OpenStack 2025.2, upstream kolla-ansible replaced redis
        with valkey, and the\nvalkey role uses a **distinct** `valkey_master_password`.
        After the upgrade the\ncheck's hardcoded redis password fails `AUTH`, `check_tcp`
        reports an unexpected\nresponse, and the whole build fails on the only non-conditional
        check in the\nfile.\n\nFirst observed on `testbed-upgrade-stable-next-ubuntu-24.04`
        (periodic-midnight)\nbuild `3c209b90` \u2014 the first run in which the redis\u2192valkey
        upgrade wall cleared\nand the check was ever exercised against valkey. Elasticsearch,
        MariaDB,\nPrometheus, and RabbitMQ all passed; the redis check was the sole
        failure.\n\n## How\n\n- Source `include.sh` and select the active service
        with `valkey_or_redis()` \u2014\n  the same OpenStack-release signal `deploy/200`
        and `upgrade/200` already use.\n- Read the matching `${store}_master_password`
        from `secrets.yml` instead of\n  embedding a literal. Using the single source
        of truth removes the duplication\n  that caused the drift, so the check follows
        the deployed service and won't\n  re-break the next time a password changes.\n\nPort,
        host, and `INFO replication` expectations are unchanged: valkey preserves\nthe
        redis wire format and the testbed topology is the same.\n\n## Verification\n\n-
        `shellcheck` clean; `bash -n` OK.\n- Password extraction confirmed against
        `secrets.yml`: `redis` resolves to the\n  exact value previously hardcoded
        (redis-era releases unaffected), `valkey`\n  resolves to its distinct password.\n-
        Full live valkey `check_tcp` round-trip still needs a\n  `testbed-upgrade-stable-next-ubuntu-24.04`
        run to exercise end-to-end \u2014 hence\n  draft.\n\n\U0001F916 Generated
        with [Claude Code](https://claude.com/claude-code)\n"
      change_url: https://github.com/osism/testbed/pull/2924
      child_jobs: []
      commit_id: 03e5cc54ee70997a1813acee83d33098ac9ce78c
      event_id: 702898f0-791c-11f1-8cdc-cc03aec2a942
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/3fe27c697534451b973f9368dde21422/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/3fe27c697534451b973f9368dde21422/work/logs
        result_data_file: /var/lib/zuul/builds/3fe27c697534451b973f9368dde21422/work/results.json
        src_root: /var/lib/zuul/builds/3fe27c697534451b973f9368dde21422/work/src
        work_root: /var/lib/zuul/builds/3fe27c697534451b973f9368dde21422/work
      include_vars: []
      items:
      - branch: main
        change: '2924'
        change_message: "check: make key-value store check release-aware\n\n## What\n\nMake
          the post-upgrade key-value store check in\n`scripts/check/200-infrastructure.sh`
          release-aware instead of hardcoding a\nredis-era check.\n\n## Why\n\nThe
          infrastructure check sweep validated the key-value store with a single\nhardcoded
          line that always spoke redis on `192.168.16.10:6379` using the\nredis-era
          master password. Unlike the MariaDB and RabbitMQ checks in the same\nfile,
          it had no release conditional.\n\nAt OpenStack 2025.2, upstream kolla-ansible
          replaced redis with valkey, and the\nvalkey role uses a **distinct** `valkey_master_password`.
          After the upgrade the\ncheck's hardcoded redis password fails `AUTH`, `check_tcp`
          reports an unexpected\nresponse, and the whole build fails on the only non-conditional
          check in the\nfile.\n\nFirst observed on `testbed-upgrade-stable-next-ubuntu-24.04`
          (periodic-midnight)\nbuild `3c209b90` \u2014 the first run in which the
          redis\u2192valkey upgrade wall cleared\nand the check was ever exercised
          against valkey. Elasticsearch, MariaDB,\nPrometheus, and RabbitMQ all passed;
          the redis check was the sole failure.\n\n## How\n\n- Source `include.sh`
          and select the active service with `valkey_or_redis()` \u2014\n  the same
          OpenStack-release signal `deploy/200` and `upgrade/200` already use.\n-
          Read the matching `${store}_master_password` from `secrets.yml` instead
          of\n  embedding a literal. Using the single source of truth removes the
          duplication\n  that caused the drift, so the check follows the deployed
          service and won't\n  re-break the next time a password changes.\n\nPort,
          host, and `INFO replication` expectations are unchanged: valkey preserves\nthe
          redis wire format and the testbed topology is the same.\n\n## Verification\n\n-
          `shellcheck` clean; `bash -n` OK.\n- Password extraction confirmed against
          `secrets.yml`: `redis` resolves to the\n  exact value previously hardcoded
          (redis-era releases unaffected), `valkey`\n  resolves to its distinct password.\n-
          Full live valkey `check_tcp` round-trip still needs a\n  `testbed-upgrade-stable-next-ubuntu-24.04`
          run to exercise end-to-end \u2014 hence\n  draft.\n\n\U0001F916 Generated
          with [Claude Code](https://claude.com/claude-code)\n"
        change_url: https://github.com/osism/testbed/pull/2924
        commit_id: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        patchset: 03e5cc54ee70997a1813acee83d33098ac9ce78c
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
        topic: null
      job: flake8
      jobtags: []
      max_attempts: 3
      message: Y2hlY2s6IG1ha2Uga2V5LXZhbHVlIHN0b3JlIGNoZWNrIHJlbGVhc2UtYXdhcmUKCiMjIFdoYXQKCk1ha2UgdGhlIHBvc3QtdXBncmFkZSBrZXktdmFsdWUgc3RvcmUgY2hlY2sgaW4KYHNjcmlwdHMvY2hlY2svMjAwLWluZnJhc3RydWN0dXJlLnNoYCByZWxlYXNlLWF3YXJlIGluc3RlYWQgb2YgaGFyZGNvZGluZyBhCnJlZGlzLWVyYSBjaGVjay4KCiMjIFdoeQoKVGhlIGluZnJhc3RydWN0dXJlIGNoZWNrIHN3ZWVwIHZhbGlkYXRlZCB0aGUga2V5LXZhbHVlIHN0b3JlIHdpdGggYSBzaW5nbGUKaGFyZGNvZGVkIGxpbmUgdGhhdCBhbHdheXMgc3Bva2UgcmVkaXMgb24gYDE5Mi4xNjguMTYuMTA6NjM3OWAgdXNpbmcgdGhlCnJlZGlzLWVyYSBtYXN0ZXIgcGFzc3dvcmQuIFVubGlrZSB0aGUgTWFyaWFEQiBhbmQgUmFiYml0TVEgY2hlY2tzIGluIHRoZSBzYW1lCmZpbGUsIGl0IGhhZCBubyByZWxlYXNlIGNvbmRpdGlvbmFsLgoKQXQgT3BlblN0YWNrIDIwMjUuMiwgdXBzdHJlYW0ga29sbGEtYW5zaWJsZSByZXBsYWNlZCByZWRpcyB3aXRoIHZhbGtleSwgYW5kIHRoZQp2YWxrZXkgcm9sZSB1c2VzIGEgKipkaXN0aW5jdCoqIGB2YWxrZXlfbWFzdGVyX3Bhc3N3b3JkYC4gQWZ0ZXIgdGhlIHVwZ3JhZGUgdGhlCmNoZWNrJ3MgaGFyZGNvZGVkIHJlZGlzIHBhc3N3b3JkIGZhaWxzIGBBVVRIYCwgYGNoZWNrX3RjcGAgcmVwb3J0cyBhbiB1bmV4cGVjdGVkCnJlc3BvbnNlLCBhbmQgdGhlIHdob2xlIGJ1aWxkIGZhaWxzIG9uIHRoZSBvbmx5IG5vbi1jb25kaXRpb25hbCBjaGVjayBpbiB0aGUKZmlsZS4KCkZpcnN0IG9ic2VydmVkIG9uIGB0ZXN0YmVkLXVwZ3JhZGUtc3RhYmxlLW5leHQtdWJ1bnR1LTI0LjA0YCAocGVyaW9kaWMtbWlkbmlnaHQpCmJ1aWxkIGAzYzIwOWI5MGAg4oCUIHRoZSBmaXJzdCBydW4gaW4gd2hpY2ggdGhlIHJlZGlz4oaSdmFsa2V5IHVwZ3JhZGUgd2FsbCBjbGVhcmVkCmFuZCB0aGUgY2hlY2sgd2FzIGV2ZXIgZXhlcmNpc2VkIGFnYWluc3QgdmFsa2V5LiBFbGFzdGljc2VhcmNoLCBNYXJpYURCLApQcm9tZXRoZXVzLCBhbmQgUmFiYml0TVEgYWxsIHBhc3NlZDsgdGhlIHJlZGlzIGNoZWNrIHdhcyB0aGUgc29sZSBmYWlsdXJlLgoKIyMgSG93CgotIFNvdXJjZSBgaW5jbHVkZS5zaGAgYW5kIHNlbGVjdCB0aGUgYWN0aXZlIHNlcnZpY2Ugd2l0aCBgdmFsa2V5X29yX3JlZGlzKClgIOKAlAogIHRoZSBzYW1lIE9wZW5TdGFjay1yZWxlYXNlIHNpZ25hbCBgZGVwbG95LzIwMGAgYW5kIGB1cGdyYWRlLzIwMGAgYWxyZWFkeSB1c2UuCi0gUmVhZCB0aGUgbWF0Y2hpbmcgYCR7c3RvcmV9X21hc3Rlcl9wYXNzd29yZGAgZnJvbSBgc2VjcmV0cy55bWxgIGluc3RlYWQgb2YKICBlbWJlZGRpbmcgYSBsaXRlcmFsLiBVc2luZyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCByZW1vdmVzIHRoZSBkdXBsaWNhdGlvbgogIHRoYXQgY2F1c2VkIHRoZSBkcmlmdCwgc28gdGhlIGNoZWNrIGZvbGxvd3MgdGhlIGRlcGxveWVkIHNlcnZpY2UgYW5kIHdvbid0CiAgcmUtYnJlYWsgdGhlIG5leHQgdGltZSBhIHBhc3N3b3JkIGNoYW5nZXMuCgpQb3J0LCBob3N0LCBhbmQgYElORk8gcmVwbGljYXRpb25gIGV4cGVjdGF0aW9ucyBhcmUgdW5jaGFuZ2VkOiB2YWxrZXkgcHJlc2VydmVzCnRoZSByZWRpcyB3aXJlIGZvcm1hdCBhbmQgdGhlIHRlc3RiZWQgdG9wb2xvZ3kgaXMgdGhlIHNhbWUuCgojIyBWZXJpZmljYXRpb24KCi0gYHNoZWxsY2hlY2tgIGNsZWFuOyBgYmFzaCAtbmAgT0suCi0gUGFzc3dvcmQgZXh0cmFjdGlvbiBjb25maXJtZWQgYWdhaW5zdCBgc2VjcmV0cy55bWxgOiBgcmVkaXNgIHJlc29sdmVzIHRvIHRoZQogIGV4YWN0IHZhbHVlIHByZXZpb3VzbHkgaGFyZGNvZGVkIChyZWRpcy1lcmEgcmVsZWFzZXMgdW5hZmZlY3RlZCksIGB2YWxrZXlgCiAgcmVzb2x2ZXMgdG8gaXRzIGRpc3RpbmN0IHBhc3N3b3JkLgotIEZ1bGwgbGl2ZSB2YWxrZXkgYGNoZWNrX3RjcGAgcm91bmQtdHJpcCBzdGlsbCBuZWVkcyBhCiAgYHRlc3RiZWQtdXBncmFkZS1zdGFibGUtbmV4dC11YnVudHUtMjQuMDRgIHJ1biB0byBleGVyY2lzZSBlbmQtdG8tZW5kIOKAlCBoZW5jZQogIGRyYWZ0LgoK8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSkK
      patchset: 03e5cc54ee70997a1813acee83d33098ac9ce78c
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
          trusted/project_2/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 1d71e58c93442038e695a5d883d57a603182c7ae
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: 71b711c422c10c242a8f785dc6d41ed9d12e9cd3
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 242732586e2cba04d04867d3e302888c766bc231
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/run.yaml
          roles:
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_0/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_0/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_1/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_1/openinfra-zuul-jobs/roles
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      post_timeout: 1800
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/testbed
        name: osism/testbed
        short_name: testbed
        src_dir: src/github.com/osism/testbed
      projects:
        github.com/osism/testbed:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          checkout: main
          checkout_description: zuul branch
          commit: b8b145b091a2400d5368e47a710a23582973e0f7
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2924/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
