all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:fe02:4bf8
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 83ea22b5-0890-472b-951f-6777ee293576
        host_id: df70f2a3f3d0c26428f22685cfc722ebc48099d99e7332c39e017195
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:fe02:4bf8
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.7.44
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.197
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:fe02:4bf8
        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 python-black explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#54>'
      - '<Job python-black explicit: None implied: None source: osism/ansible-collection-services/.zuul.yaml@main#489>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: b20d007cc43f4a729c9bb53fc4a64679
      build_refs:
      - branch: main
        change: '2147'
        change_message: "frr: make maximum-paths configurable\n\nThe generic templates
          (`frr_leaf`, `frr_loadbalancer` and `frr_loadbalancer_external_uplink`)
          hardcoded `maximum-paths 2` per BGP address family. With four uplinks FRR
          then only installs two of the four ECMP paths, which do not necessarily
          match the paths the switches pick for the return traffic, breaking connections.\r\n\r\n-
          Drop the hardcoded setting from the generic templates. Without an explicit
          `maximum-paths`, FRR falls back to its built-in default of `multipath_num`
          (256 in both the Debian and RedHat family packages, independent of the `frr
          defaults traditional` profile), so all available paths are used.\r\n- The
          new `frr_maximum_paths` variable (unset by default) renders the line again
          when a deployment wants to limit the number of paths.\r\n- The yrzn templates
          keep their previous default of two paths; the hardcoded value in `frr_yrzn001.conf.j2`
          moves into the new `frr_yrzn001_maximum_paths` variable so it can be overridden
          like its metalbox and network counterparts.\r\n\r\nFixes #2122\r\n\r\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2147
        commit_id: cbfeb7b742ed975355e1adde1c261b587d3131e3
        patchset: cbfeb7b742ed975355e1adde1c261b587d3131e3
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      buildset: 2cee2de622cb46dd94b00b3aff25bebe
      buildset_refs:
      - branch: main
        change: '2147'
        change_message: "frr: make maximum-paths configurable\n\nThe generic templates
          (`frr_leaf`, `frr_loadbalancer` and `frr_loadbalancer_external_uplink`)
          hardcoded `maximum-paths 2` per BGP address family. With four uplinks FRR
          then only installs two of the four ECMP paths, which do not necessarily
          match the paths the switches pick for the return traffic, breaking connections.\r\n\r\n-
          Drop the hardcoded setting from the generic templates. Without an explicit
          `maximum-paths`, FRR falls back to its built-in default of `multipath_num`
          (256 in both the Debian and RedHat family packages, independent of the `frr
          defaults traditional` profile), so all available paths are used.\r\n- The
          new `frr_maximum_paths` variable (unset by default) renders the line again
          when a deployment wants to limit the number of paths.\r\n- The yrzn templates
          keep their previous default of two paths; the hardcoded value in `frr_yrzn001.conf.j2`
          moves into the new `frr_yrzn001_maximum_paths` variable so it can be overridden
          like its metalbox and network counterparts.\r\n\r\nFixes #2122\r\n\r\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2147
        commit_id: cbfeb7b742ed975355e1adde1c261b587d3131e3
        patchset: cbfeb7b742ed975355e1adde1c261b587d3131e3
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      change: '2147'
      change_message: "frr: make maximum-paths configurable\n\nThe generic templates
        (`frr_leaf`, `frr_loadbalancer` and `frr_loadbalancer_external_uplink`) hardcoded
        `maximum-paths 2` per BGP address family. With four uplinks FRR then only
        installs two of the four ECMP paths, which do not necessarily match the paths
        the switches pick for the return traffic, breaking connections.\r\n\r\n- Drop
        the hardcoded setting from the generic templates. Without an explicit `maximum-paths`,
        FRR falls back to its built-in default of `multipath_num` (256 in both the
        Debian and RedHat family packages, independent of the `frr defaults traditional`
        profile), so all available paths are used.\r\n- The new `frr_maximum_paths`
        variable (unset by default) renders the line again when a deployment wants
        to limit the number of paths.\r\n- The yrzn templates keep their previous
        default of two paths; the hardcoded value in `frr_yrzn001.conf.j2` moves into
        the new `frr_yrzn001_maximum_paths` variable so it can be overridden like
        its metalbox and network counterparts.\r\n\r\nFixes #2122\r\n\r\n\U0001F916
        Generated with [Claude Code](https://claude.com/claude-code)"
      change_url: https://github.com/osism/ansible-collection-services/pull/2147
      child_jobs: []
      commit_id: cbfeb7b742ed975355e1adde1c261b587d3131e3
      event_id: 5670d8c0-8bdf-11f1-9018-40d58d8df621
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/b20d007cc43f4a729c9bb53fc4a64679/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/b20d007cc43f4a729c9bb53fc4a64679/work/logs
        result_data_file: /var/lib/zuul/builds/b20d007cc43f4a729c9bb53fc4a64679/work/results.json
        src_root: /var/lib/zuul/builds/b20d007cc43f4a729c9bb53fc4a64679/work/src
        work_root: /var/lib/zuul/builds/b20d007cc43f4a729c9bb53fc4a64679/work
      include_vars: []
      items:
      - branch: main
        change: '2147'
        change_message: "frr: make maximum-paths configurable\n\nThe generic templates
          (`frr_leaf`, `frr_loadbalancer` and `frr_loadbalancer_external_uplink`)
          hardcoded `maximum-paths 2` per BGP address family. With four uplinks FRR
          then only installs two of the four ECMP paths, which do not necessarily
          match the paths the switches pick for the return traffic, breaking connections.\r\n\r\n-
          Drop the hardcoded setting from the generic templates. Without an explicit
          `maximum-paths`, FRR falls back to its built-in default of `multipath_num`
          (256 in both the Debian and RedHat family packages, independent of the `frr
          defaults traditional` profile), so all available paths are used.\r\n- The
          new `frr_maximum_paths` variable (unset by default) renders the line again
          when a deployment wants to limit the number of paths.\r\n- The yrzn templates
          keep their previous default of two paths; the hardcoded value in `frr_yrzn001.conf.j2`
          moves into the new `frr_yrzn001_maximum_paths` variable so it can be overridden
          like its metalbox and network counterparts.\r\n\r\nFixes #2122\r\n\r\n\U0001F916
          Generated with [Claude Code](https://claude.com/claude-code)"
        change_url: https://github.com/osism/ansible-collection-services/pull/2147
        commit_id: cbfeb7b742ed975355e1adde1c261b587d3131e3
        patchset: cbfeb7b742ed975355e1adde1c261b587d3131e3
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          name: osism/ansible-collection-services
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
        topic: null
      job: python-black
      jobtags: []
      max_attempts: 3
      message: ZnJyOiBtYWtlIG1heGltdW0tcGF0aHMgY29uZmlndXJhYmxlCgpUaGUgZ2VuZXJpYyB0ZW1wbGF0ZXMgKGBmcnJfbGVhZmAsIGBmcnJfbG9hZGJhbGFuY2VyYCBhbmQgYGZycl9sb2FkYmFsYW5jZXJfZXh0ZXJuYWxfdXBsaW5rYCkgaGFyZGNvZGVkIGBtYXhpbXVtLXBhdGhzIDJgIHBlciBCR1AgYWRkcmVzcyBmYW1pbHkuIFdpdGggZm91ciB1cGxpbmtzIEZSUiB0aGVuIG9ubHkgaW5zdGFsbHMgdHdvIG9mIHRoZSBmb3VyIEVDTVAgcGF0aHMsIHdoaWNoIGRvIG5vdCBuZWNlc3NhcmlseSBtYXRjaCB0aGUgcGF0aHMgdGhlIHN3aXRjaGVzIHBpY2sgZm9yIHRoZSByZXR1cm4gdHJhZmZpYywgYnJlYWtpbmcgY29ubmVjdGlvbnMuDQoNCi0gRHJvcCB0aGUgaGFyZGNvZGVkIHNldHRpbmcgZnJvbSB0aGUgZ2VuZXJpYyB0ZW1wbGF0ZXMuIFdpdGhvdXQgYW4gZXhwbGljaXQgYG1heGltdW0tcGF0aHNgLCBGUlIgZmFsbHMgYmFjayB0byBpdHMgYnVpbHQtaW4gZGVmYXVsdCBvZiBgbXVsdGlwYXRoX251bWAgKDI1NiBpbiBib3RoIHRoZSBEZWJpYW4gYW5kIFJlZEhhdCBmYW1pbHkgcGFja2FnZXMsIGluZGVwZW5kZW50IG9mIHRoZSBgZnJyIGRlZmF1bHRzIHRyYWRpdGlvbmFsYCBwcm9maWxlKSwgc28gYWxsIGF2YWlsYWJsZSBwYXRocyBhcmUgdXNlZC4NCi0gVGhlIG5ldyBgZnJyX21heGltdW1fcGF0aHNgIHZhcmlhYmxlICh1bnNldCBieSBkZWZhdWx0KSByZW5kZXJzIHRoZSBsaW5lIGFnYWluIHdoZW4gYSBkZXBsb3ltZW50IHdhbnRzIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgcGF0aHMuDQotIFRoZSB5cnpuIHRlbXBsYXRlcyBrZWVwIHRoZWlyIHByZXZpb3VzIGRlZmF1bHQgb2YgdHdvIHBhdGhzOyB0aGUgaGFyZGNvZGVkIHZhbHVlIGluIGBmcnJfeXJ6bjAwMS5jb25mLmoyYCBtb3ZlcyBpbnRvIHRoZSBuZXcgYGZycl95cnpuMDAxX21heGltdW1fcGF0aHNgIHZhcmlhYmxlIHNvIGl0IGNhbiBiZSBvdmVycmlkZGVuIGxpa2UgaXRzIG1ldGFsYm94IGFuZCBuZXR3b3JrIGNvdW50ZXJwYXJ0cy4NCg0KRml4ZXMgIzIxMjINCg0K8J+kliBHZW5lcmF0ZWQgd2l0aCBbQ2xhdWRlIENvZGVdKGh0dHBzOi8vY2xhdWRlLmNvbS9jbGF1ZGUtY29kZSk=
      patchset: cbfeb7b742ed975355e1adde1c261b587d3131e3
      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: dcb06ea8a3ad422cc9d98b376216617b2daa6a02
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: dcb06ea8a3ad422cc9d98b376216617b2daa6a02
          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/python-black/run.yml
          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/ansible-collection-services
        name: osism/ansible-collection-services
        short_name: ansible-collection-services
        src_dir: src/github.com/osism/ansible-collection-services
      projects:
        github.com/osism/ansible-collection-services:
          canonical_hostname: github.com
          canonical_name: github.com/osism/ansible-collection-services
          checkout: main
          checkout_description: zuul branch
          commit: 82a0b496c915fe0d1a0bbd431bdf4b9e7538a969
          name: osism/ansible-collection-services
          required: false
          short_name: ansible-collection-services
          src_dir: src/github.com/osism/ansible-collection-services
      ref: refs/pull/2147/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
