all:
  children:
    tempest:
      hosts:
        controller: null
    zuul_unreachable:
      hosts: {}
  hosts:
    controller:
      ansible_connection: ssh
      ansible_host: 199.204.45.53
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      configure_swap_size: 8192
      devstack_local_conf:
        post-config:
          $NEUTRON_CONF:
            DEFAULT:
              global_physnet_mtu: '{{ external_bridge_mtu }}'
          /etc/magnum/magnum.conf:
            cluster_template:
              kubernetes_allowed_network_drivers: calico,cilium
              kubernetes_default_network_driver: calico
            nova_client:
              api_version: 2.15
          /etc/manila/manila.conf:
            generic:
              connect_share_server_to_tenant_network: true
              driver_handles_share_servers: true
      devstack_localrc:
        ADMIN_PASSWORD: secretadmin
        DATABASE_PASSWORD: secretdatabase
        DEBUG_LIBVIRT_COREDUMPS: true
        DISABLE_AMP_IMAGE_BUILD: true
        ENABLE_SYSCTL_MEM_TUNING: true
        ENABLE_SYSCTL_NET_TUNING: true
        ENABLE_ZSWAP: true
        ERROR_ON_CLONE: true
        FIXED_RANGE: 10.1.0.0/20
        FLOATING_RANGE: 172.24.5.0/24
        GIT_BASE: https://github.com
        HOST_IP: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
        IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
        LIBVIRT_TYPE: '{{ devstack_libvirt_type | default("qemu") }}'
        LOGFILE: /opt/stack/logs/devstacklog.txt
        LOG_COLOR: false
        MAGNUM_GUEST_IMAGE_URL: '{{ image_url }}'
        MANILA_DEFAULT_SHARE_TYPE_EXTRA_SPECS: snapshot_support=True create_share_from_snapshot_support=True
        MANILA_ENABLED_BACKENDS: generic
        MANILA_USE_SERVICE_INSTANCE_PASSWORD: true
        NETWORK_GATEWAY: 10.1.0.1
        NOVA_LIBVIRT_TB_CACHE_SIZE: 128
        NOVA_VNC_ENABLED: true
        OCTAVIA_NODE: api
        OVN_DBS_LOG_LEVEL: dbg
        PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
        PUBLIC_NETWORK_GATEWAY: 172.24.5.1
        RABBIT_PASSWORD: secretrabbit
        SERVICE_HOST: '{{ hostvars[''controller''][''nodepool''][''private_ipv4'']
          }}'
        SERVICE_PASSWORD: secretservice
        SWIFT_HASH: 1234123412341234
        SWIFT_REPLICAS: 1
        SWIFT_START_ALL_SERVICES: false
        VERBOSE: true
        VERBOSE_NO_TIMESTAMP: true
      devstack_plugins:
        barbican: https://github.com/openstack/barbican
        magnum: https://review.opendev.org/openstack/magnum
        magnum-cluster-api: https://github.com/vexxhost/magnum-cluster-api
        manila: https://github.com/openstack/manila
        octavia: https://github.com/openstack/octavia
        ovn-octavia-provider: https://github.com/openstack/ovn-octavia-provider
      devstack_services:
        base: false
        c-api: true
        c-bak: true
        c-sch: true
        c-vol: true
        dstat: false
        etcd3: true
        file_tracker: true
        g-api: true
        horizon: false
        key: true
        memory_tracker: true
        mysql: true
        n-api: true
        n-api-meta: true
        n-cond: true
        n-cpu: true
        n-novnc: true
        n-sch: true
        o-api: true
        o-da: true
        o-hk: true
        octavia: true
        openstack-cli-server: true
        ovn-controller: true
        ovn-northd: true
        ovs-vswitchd: true
        ovsdb-server: true
        placement-api: true
        q-ovn-agent: true
        q-svc: true
        rabbit: true
        s-account: false
        s-container: false
        s-object: false
        s-proxy: false
        tempest: false
        tls-proxy: true
      extensions_to_txt:
        auto: true
        conf: true
        localrc: true
        log: true
        stackenv: true
      image_prefix: ubuntu-24.04
      image_release: 2026.05-7
      image_url: https://github.com/vexxhost/capo-image-elements/releases/download/{{
        image_release }}/{{ image_prefix }}-{{ kube_tag }}.qcow2
      kube_tag: v1.35.5
      network_driver: cilium
      nodepool:
        az: nova
        cloud: public
        external_id: dd54701c-3afd-483b-b609-655150ea0864
        host_id: c3960d6808d44d1eb7d41ff8f195b627bd14b6a9ca83ea7250fd5db8
        interface_ip: 199.204.45.53
        label: ubuntu-noble-16
        node_properties: {}
        private_ipv4: 199.204.45.53
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.53
        public_ipv6: 2604:e100:1:0:f816:3eff:fe78:b9b5
        region: ca-ymq-1
        slot: null
      zuul_copy_output:
        /etc/ceph: logs
        /etc/glusterfs/glusterd.vol: logs
        /etc/libvirt: logs
        /etc/lvm: logs
        /etc/resolv.conf: logs
        /etc/sudoers: logs
        /etc/sudoers.d: logs
        /var/log/ceph: logs
        /var/log/glusterfs: logs
        /var/log/libvirt: logs
        /var/log/mysql: logs
        /var/log/openvswitch: logs
        /var/log/postgresql: logs
        /var/log/rabbitmq: logs
        /var/log/unbound.log: logs
        '{{ devstack_conf_dir }}/.localrc.auto': logs
        '{{ devstack_conf_dir }}/.stackenv': logs
        '{{ devstack_conf_dir }}/local.conf': logs
        '{{ devstack_conf_dir }}/localrc': logs
        '{{ devstack_full_log}}': logs
        '{{ devstack_log_dir }}/atop': logs
        '{{ devstack_log_dir }}/devstacklog.txt': logs
        '{{ devstack_log_dir }}/devstacklog.txt.summary': logs
        '{{ devstack_log_dir }}/dstat-csv.log': logs
        '{{ devstack_log_dir }}/qemu.coredump': logs
        '{{ devstack_log_dir }}/tcpdump.pcap': logs
        '{{ devstack_log_dir }}/worlddump-latest.txt': logs
        '{{ stage_dir }}/apache': logs
        '{{ stage_dir }}/apache_config': logs
        '{{ stage_dir }}/audit.log': logs
        '{{ stage_dir }}/core': logs
        '{{ stage_dir }}/deprecations.log': logs
        '{{ stage_dir }}/df.txt': logs
        '{{ stage_dir }}/dpkg-l.txt': logs
        '{{ stage_dir }}/etc': logs
        '{{ stage_dir }}/iptables.txt': logs
        '{{ stage_dir }}/listen53.txt': logs
        '{{ stage_dir }}/mount.txt': logs
        '{{ stage_dir }}/performance.json': logs
        '{{ stage_dir }}/pip2-freeze.txt': logs
        '{{ stage_dir }}/pip3-freeze.txt': logs
        '{{ stage_dir }}/rpm-qa.txt': logs
        '{{ stage_dir }}/services.txt': logs
        '{{ stage_dir }}/verify_tempest_conf.log': logs
      zuul_node:
        az: nova
        cloud: public
        external_id: dd54701c-3afd-483b-b609-655150ea0864
        host_id: c3960d6808d44d1eb7d41ff8f195b627bd14b6a9ca83ea7250fd5db8
        interface_ip: 199.204.45.53
        label: ubuntu-noble-16
        node_properties: {}
        private_ipv4: 199.204.45.53
        private_ipv6: null
        provider: yul1
        public_ipv4: 199.204.45.53
        public_ipv6: 2604:e100:1:0:f816:3eff:fe78:b9b5
        region: ca-ymq-1
        slot: null
        uuid: null
  vars:
    configure_swap_size: 8192
    devstack_local_conf:
      post-config:
        $NEUTRON_CONF:
          DEFAULT:
            global_physnet_mtu: '{{ external_bridge_mtu }}'
        /etc/magnum/magnum.conf:
          cluster_template:
            kubernetes_allowed_network_drivers: calico,cilium
            kubernetes_default_network_driver: calico
          nova_client:
            api_version: 2.15
        /etc/manila/manila.conf:
          generic:
            connect_share_server_to_tenant_network: true
            driver_handles_share_servers: true
    devstack_localrc:
      ADMIN_PASSWORD: secretadmin
      DATABASE_PASSWORD: secretdatabase
      DEBUG_LIBVIRT_COREDUMPS: true
      DISABLE_AMP_IMAGE_BUILD: true
      ENABLE_SYSCTL_MEM_TUNING: true
      ENABLE_SYSCTL_NET_TUNING: true
      ENABLE_ZSWAP: true
      ERROR_ON_CLONE: true
      FIXED_RANGE: 10.1.0.0/20
      FLOATING_RANGE: 172.24.5.0/24
      GIT_BASE: https://github.com
      HOST_IP: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
      IPV4_ADDRS_SAFE_TO_USE: 10.1.0.0/20
      LIBVIRT_TYPE: '{{ devstack_libvirt_type | default("qemu") }}'
      LOGFILE: /opt/stack/logs/devstacklog.txt
      LOG_COLOR: false
      MAGNUM_GUEST_IMAGE_URL: '{{ image_url }}'
      MANILA_DEFAULT_SHARE_TYPE_EXTRA_SPECS: snapshot_support=True create_share_from_snapshot_support=True
      MANILA_ENABLED_BACKENDS: generic
      MANILA_USE_SERVICE_INSTANCE_PASSWORD: true
      NETWORK_GATEWAY: 10.1.0.1
      NOVA_LIBVIRT_TB_CACHE_SIZE: 128
      NOVA_VNC_ENABLED: true
      OCTAVIA_NODE: api
      OVN_DBS_LOG_LEVEL: dbg
      PUBLIC_BRIDGE_MTU: '{{ external_bridge_mtu }}'
      PUBLIC_NETWORK_GATEWAY: 172.24.5.1
      RABBIT_PASSWORD: secretrabbit
      SERVICE_HOST: '{{ hostvars[''controller''][''nodepool''][''private_ipv4''] }}'
      SERVICE_PASSWORD: secretservice
      SWIFT_HASH: 1234123412341234
      SWIFT_REPLICAS: 1
      SWIFT_START_ALL_SERVICES: false
      VERBOSE: true
      VERBOSE_NO_TIMESTAMP: true
    devstack_plugins:
      barbican: https://github.com/openstack/barbican
      magnum: https://review.opendev.org/openstack/magnum
      magnum-cluster-api: https://github.com/vexxhost/magnum-cluster-api
      manila: https://github.com/openstack/manila
      octavia: https://github.com/openstack/octavia
      ovn-octavia-provider: https://github.com/openstack/ovn-octavia-provider
    devstack_services:
      base: false
      c-api: true
      c-bak: true
      c-sch: true
      c-vol: true
      dstat: false
      etcd3: true
      file_tracker: true
      g-api: true
      horizon: false
      key: true
      memory_tracker: true
      mysql: true
      n-api: true
      n-api-meta: true
      n-cond: true
      n-cpu: true
      n-novnc: true
      n-sch: true
      o-api: true
      o-da: true
      o-hk: true
      octavia: true
      openstack-cli-server: true
      ovn-controller: true
      ovn-northd: true
      ovs-vswitchd: true
      ovsdb-server: true
      placement-api: true
      q-ovn-agent: true
      q-svc: true
      rabbit: true
      s-account: false
      s-container: false
      s-object: false
      s-proxy: false
      tempest: false
      tls-proxy: true
    extensions_to_txt:
      auto: true
      conf: true
      localrc: true
      log: true
      stackenv: true
    image_prefix: ubuntu-24.04
    image_release: 2026.05-7
    image_url: https://github.com/vexxhost/capo-image-elements/releases/download/{{
      image_release }}/{{ image_prefix }}-{{ kube_tag }}.qcow2
    kube_tag: v1.35.5
    network_driver: cilium
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-config/zuul.d/jobs.yaml@main#1>'
      - '<Job openstack-multinode-fips explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/zuul-config/zuul.d/jobs.yaml@main#17>'
      - '<Job devstack-base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#378>'
      - '<Job devstack-minimal explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#512>'
      - '<Job devstack explicit: None implied: {MatchAny:{ImpliedBranchMatcher:master}}
        source: openstack/devstack/.zuul.yaml@master#555>'
      - '<Job magnum-cluster-api-devstack explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/jobs.yaml@main#1>'
      - '<Job magnum-cluster-api-hydrophone explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/hydrophone-jobs.yaml@main#23>'
      - '<Job magnum-cluster-api-hydrophone-v1.35.5 explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: vexxhost/magnum-cluster-api/zuul.d/hydrophone-jobs.yaml@main#67>'
      - '<Job magnum-cluster-api-hydrophone-v1.35.5-cilium explicit: None implied:
        {MatchAny:{ImpliedBranchMatcher:main}} source: vexxhost/magnum-cluster-api/zuul.d/hydrophone-jobs.yaml@main#78>'
      - '<Job magnum-cluster-api-hydrophone-v1.35.5-cilium explicit: None implied:
        None source: vexxhost/magnum-cluster-api/zuul.d/hydrophone-jobs.yaml@main#1>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 9bc50d50d41f4309b4a9e4e23153a206
      build_refs:
      - branch: main
        change: '1116'
        change_message: "fix(deps): update rust crate syn to v3\n\nThis PR contains
          the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
          [syn](https://redirect.github.com/dtolnay/syn) | dependencies | major |
          `2.0.100` \u2192 `3.0.0` |\n| [syn](https://redirect.github.com/dtolnay/syn)
          | build-dependencies | major | `2.0.100` \u2192 `3.0.0` |\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>dtolnay/syn (syn)</summary>\n\n###
          [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0)\n\nThis
          release contains adjustments to the syntax tree to account for ongoing Rust
          language development from the 3 years since syn 2.0.0 and to anticipate
          some in-flight Rust language RFCs.\n\nThese include: default values in fields,
          pinned type sugar, raw lifetimes, generator blocks and functions, unnamed
          enum variants, attributes in tuple types and tuple patterns, named arguments
          in parenthesized generic argument lists, lightweight clones, const traits,
          const function pointers, mutability restricted fields, supertrait auto implementation,
          final associated functions, trait implementability restrictions, const blocks
          in path arguments, item-level const blocks, return type notation, never
          patterns, function delegation, mutable by-reference bindings, in-place initialization,
          field projections, explicitly dyn-compatible traits, view types, file-level
          frontmatter, generic const arguments, guard patterns, lazy type aliases,
          explicitly safe foreign items, super let, unsafe fields, pattern types,
          heterogeneous try-blocks, function contracts, async function trait bounds,
          static closure coroutine syntax, unsafe binder types, move expressions,
          for-await loops, and postfix keywords.\n\n<br>\n\n<p align=\"center\"><a
          href=\"https://docs.rs/syn/3/syn\">[API documentation for 3.0]</a></p>\n\n###
          Breaking changes\n#### Modifiers\n\nTo reserve more room for language evolution,
          there are 10 new non-exhaustive structs in the syntax tree having the following
          commonality:\n\n- Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`,
          `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`,
          `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`}\n\n- Each implements
          `Default`. The default value is guaranteed to comprise no tokens.\n\n- Non-exhaustive.
          Can only be instantiated by Syn's parser or by creating and then mutating
          `\u2581\u2581Modifiers::default()`.\n\n- Does not implement `Parse`. When
          parsing, they are parsed by the enclosing syntax tree node.\n\n- Does not
          implement `ToTokens`. In some cases the syntax that these nodes might hold
          in the future is not necessarily contiguous tokens.\n\n- Provides `.require_empty()
          -> Result<()>` which returns a meaningfully spanned error if the modifiers
          are different from the empty default. This enables a caller to reject syntax
          it does not recognize without knowing what that syntax may be.\n\n#### Types\n\n-
          `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's
          terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`.\n\n-
          The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr`
          have been unified into an enum of type `PointerMutability`, which was already
          previously used by `Expr::RawAddr`.\n\n- Every `Type` variant now holds
          attributes, which can represent the attributes of element types inside a
          tuple type, or attributes for a function return type.\n\n- `BareFnArg` is
          renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in
          addition to the existing use in `Type::FnPtr`.\n\n#### Expressions\n\n-
          In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed
          to `inputs_begin` and `inputs_end` to indicate the beginning and ending
          `|` token of the closure inputs.\n\n#### Statements\n\n- Attributes are
          now preserved on all expression kinds in statement position. Previously,
          parsing would silently lose attributes on some expression statements without
          a dedicated Expr variant, such as tail-call expressions.\n\n#### Patterns\n\n-
          The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held
          in the arm's `pat`.\n\n#### Items\n\n- The `unsafety` field of `Signature`,
          which represented the presence or absence of `unsafe`, is replaced by a
          3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static`
          also gets a `Safety`.\n\n- Some of the fields of `Receiver` have been split
          to a non-exhaustive `ReceiverKind` enum to create room for proposed new
          kinds of method receivers, such as pinned.\n\n- Type aliases now hold a
          `WhereClausePlacement` to distinguish between early placement (which is
          the default for item-level type aliases and is *deprecated* in associated
          type aliases) and late placement (which is the default for associated type
          aliases and is *unstable* in item-level type aliases). Parsing and printing
          a syntax tree will now preserve the where-clause placement rather than rewriting
          it to the default placement for the item kind.\n\n#### Generics\n\n- `WherePredicate::Lifetime`
          and `WherePredicate::Type` have a new field holding the attributes on the
          where-predicates.\n\n- `GenericParam::Type` and `GenericParam::Const` now
          match the rest of the syntax tree in holding their optional default using
          a single Option of tuple, rather than a pair of Option.\n\n#### Literals\n\n-
          The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes,
          matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any`
          may be used to parse lifetimes permissive of keywords.\n\n- `LitInt` and
          `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)`
          and then match `Lit::Int` or `Lit::Float`.\n\n- The `StrStyle` enum was
          unused and has been deleted.\n\n#### More\n\n- `File` contains a new `Option<Frontmatter>`,
          but does not yet parse frontmatter in `syn::parse_file` until that language
          feature progresses closer to stabilization.\n\n- Some enums no longer provide
          `From` impls. Construct the variant by name instead, such as `Expr::Array(e)`
          in place of `e.into()`.\n\n- The `pop` method of `Punctuated<T, P>` now
          returns `Option<T>` discarding the trailing punctuation if any, rather than
          `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior.\n\n-
          Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides
          a method for processing `Span`. This was already incompletely supported
          and never walked most of the spans in a syntax tree.\n\n- The `Speculative`
          and `AnyDelimiter` traits have been sealed and cannot be implemented for
          types outside of Syn's `ParseStream`.\n\n### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119)\n\n-
          Preserve attributes on tail-call expressions in statement position ([#&#8203;1994](https://redirect.github.com/dtolnay/syn/issues/1994))\n-
          Parse field-representing types builtin in type position ([#&#8203;1996](https://redirect.github.com/dtolnay/syn/issues/1996))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about these updates again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1116
        commit_id: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        patchset: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      buildset: 18b5344994ef440d8d84f882977c67de
      buildset_refs:
      - branch: main
        change: '1116'
        change_message: "fix(deps): update rust crate syn to v3\n\nThis PR contains
          the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
          [syn](https://redirect.github.com/dtolnay/syn) | dependencies | major |
          `2.0.100` \u2192 `3.0.0` |\n| [syn](https://redirect.github.com/dtolnay/syn)
          | build-dependencies | major | `2.0.100` \u2192 `3.0.0` |\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>dtolnay/syn (syn)</summary>\n\n###
          [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0)\n\nThis
          release contains adjustments to the syntax tree to account for ongoing Rust
          language development from the 3 years since syn 2.0.0 and to anticipate
          some in-flight Rust language RFCs.\n\nThese include: default values in fields,
          pinned type sugar, raw lifetimes, generator blocks and functions, unnamed
          enum variants, attributes in tuple types and tuple patterns, named arguments
          in parenthesized generic argument lists, lightweight clones, const traits,
          const function pointers, mutability restricted fields, supertrait auto implementation,
          final associated functions, trait implementability restrictions, const blocks
          in path arguments, item-level const blocks, return type notation, never
          patterns, function delegation, mutable by-reference bindings, in-place initialization,
          field projections, explicitly dyn-compatible traits, view types, file-level
          frontmatter, generic const arguments, guard patterns, lazy type aliases,
          explicitly safe foreign items, super let, unsafe fields, pattern types,
          heterogeneous try-blocks, function contracts, async function trait bounds,
          static closure coroutine syntax, unsafe binder types, move expressions,
          for-await loops, and postfix keywords.\n\n<br>\n\n<p align=\"center\"><a
          href=\"https://docs.rs/syn/3/syn\">[API documentation for 3.0]</a></p>\n\n###
          Breaking changes\n#### Modifiers\n\nTo reserve more room for language evolution,
          there are 10 new non-exhaustive structs in the syntax tree having the following
          commonality:\n\n- Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`,
          `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`,
          `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`}\n\n- Each implements
          `Default`. The default value is guaranteed to comprise no tokens.\n\n- Non-exhaustive.
          Can only be instantiated by Syn's parser or by creating and then mutating
          `\u2581\u2581Modifiers::default()`.\n\n- Does not implement `Parse`. When
          parsing, they are parsed by the enclosing syntax tree node.\n\n- Does not
          implement `ToTokens`. In some cases the syntax that these nodes might hold
          in the future is not necessarily contiguous tokens.\n\n- Provides `.require_empty()
          -> Result<()>` which returns a meaningfully spanned error if the modifiers
          are different from the empty default. This enables a caller to reject syntax
          it does not recognize without knowing what that syntax may be.\n\n#### Types\n\n-
          `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's
          terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`.\n\n-
          The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr`
          have been unified into an enum of type `PointerMutability`, which was already
          previously used by `Expr::RawAddr`.\n\n- Every `Type` variant now holds
          attributes, which can represent the attributes of element types inside a
          tuple type, or attributes for a function return type.\n\n- `BareFnArg` is
          renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in
          addition to the existing use in `Type::FnPtr`.\n\n#### Expressions\n\n-
          In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed
          to `inputs_begin` and `inputs_end` to indicate the beginning and ending
          `|` token of the closure inputs.\n\n#### Statements\n\n- Attributes are
          now preserved on all expression kinds in statement position. Previously,
          parsing would silently lose attributes on some expression statements without
          a dedicated Expr variant, such as tail-call expressions.\n\n#### Patterns\n\n-
          The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held
          in the arm's `pat`.\n\n#### Items\n\n- The `unsafety` field of `Signature`,
          which represented the presence or absence of `unsafe`, is replaced by a
          3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static`
          also gets a `Safety`.\n\n- Some of the fields of `Receiver` have been split
          to a non-exhaustive `ReceiverKind` enum to create room for proposed new
          kinds of method receivers, such as pinned.\n\n- Type aliases now hold a
          `WhereClausePlacement` to distinguish between early placement (which is
          the default for item-level type aliases and is *deprecated* in associated
          type aliases) and late placement (which is the default for associated type
          aliases and is *unstable* in item-level type aliases). Parsing and printing
          a syntax tree will now preserve the where-clause placement rather than rewriting
          it to the default placement for the item kind.\n\n#### Generics\n\n- `WherePredicate::Lifetime`
          and `WherePredicate::Type` have a new field holding the attributes on the
          where-predicates.\n\n- `GenericParam::Type` and `GenericParam::Const` now
          match the rest of the syntax tree in holding their optional default using
          a single Option of tuple, rather than a pair of Option.\n\n#### Literals\n\n-
          The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes,
          matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any`
          may be used to parse lifetimes permissive of keywords.\n\n- `LitInt` and
          `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)`
          and then match `Lit::Int` or `Lit::Float`.\n\n- The `StrStyle` enum was
          unused and has been deleted.\n\n#### More\n\n- `File` contains a new `Option<Frontmatter>`,
          but does not yet parse frontmatter in `syn::parse_file` until that language
          feature progresses closer to stabilization.\n\n- Some enums no longer provide
          `From` impls. Construct the variant by name instead, such as `Expr::Array(e)`
          in place of `e.into()`.\n\n- The `pop` method of `Punctuated<T, P>` now
          returns `Option<T>` discarding the trailing punctuation if any, rather than
          `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior.\n\n-
          Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides
          a method for processing `Span`. This was already incompletely supported
          and never walked most of the spans in a syntax tree.\n\n- The `Speculative`
          and `AnyDelimiter` traits have been sealed and cannot be implemented for
          types outside of Syn's `ParseStream`.\n\n### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119)\n\n-
          Preserve attributes on tail-call expressions in statement position ([#&#8203;1994](https://redirect.github.com/dtolnay/syn/issues/1994))\n-
          Parse field-representing types builtin in type position ([#&#8203;1996](https://redirect.github.com/dtolnay/syn/issues/1996))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about these updates again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1116
        commit_id: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        patchset: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      change: '1116'
      change_message: "fix(deps): update rust crate syn to v3\n\nThis PR contains
        the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
        [syn](https://redirect.github.com/dtolnay/syn) | dependencies | major | `2.0.100`
        \u2192 `3.0.0` |\n| [syn](https://redirect.github.com/dtolnay/syn) | build-dependencies
        | major | `2.0.100` \u2192 `3.0.0` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>dtolnay/syn
        (syn)</summary>\n\n### [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0)\n\n[Compare
        Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0)\n\nThis
        release contains adjustments to the syntax tree to account for ongoing Rust
        language development from the 3 years since syn 2.0.0 and to anticipate some
        in-flight Rust language RFCs.\n\nThese include: default values in fields,
        pinned type sugar, raw lifetimes, generator blocks and functions, unnamed
        enum variants, attributes in tuple types and tuple patterns, named arguments
        in parenthesized generic argument lists, lightweight clones, const traits,
        const function pointers, mutability restricted fields, supertrait auto implementation,
        final associated functions, trait implementability restrictions, const blocks
        in path arguments, item-level const blocks, return type notation, never patterns,
        function delegation, mutable by-reference bindings, in-place initialization,
        field projections, explicitly dyn-compatible traits, view types, file-level
        frontmatter, generic const arguments, guard patterns, lazy type aliases, explicitly
        safe foreign items, super let, unsafe fields, pattern types, heterogeneous
        try-blocks, function contracts, async function trait bounds, static closure
        coroutine syntax, unsafe binder types, move expressions, for-await loops,
        and postfix keywords.\n\n<br>\n\n<p align=\"center\"><a href=\"https://docs.rs/syn/3/syn\">[API
        documentation for 3.0]</a></p>\n\n### Breaking changes\n#### Modifiers\n\nTo
        reserve more room for language evolution, there are 10 new non-exhaustive
        structs in the syntax tree having the following commonality:\n\n- Name ending
        in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`, `ConstModifiers`, `FieldModifiers`,
        `FnModifiers`, `ImplModifiers`, `LocalModifiers`, `TraitBoundModifiers`, `TraitModifiers`,
        `TypeModifiers`}\n\n- Each implements `Default`. The default value is guaranteed
        to comprise no tokens.\n\n- Non-exhaustive. Can only be instantiated by Syn's
        parser or by creating and then mutating `\u2581\u2581Modifiers::default()`.\n\n-
        Does not implement `Parse`. When parsing, they are parsed by the enclosing
        syntax tree node.\n\n- Does not implement `ToTokens`. In some cases the syntax
        that these nodes might hold in the future is not necessarily contiguous tokens.\n\n-
        Provides `.require_empty() -> Result<()>` which returns a meaningfully spanned
        error if the modifiers are different from the empty default. This enables
        a caller to reject syntax it does not recognize without knowing what that
        syntax may be.\n\n#### Types\n\n- `Type::BareFn` has been renamed to `Type::FnPtr`
        to mirror the compiler's terminology. Together with this, `BareVariadic` is
        renamed to `FnPtrVariadic`.\n\n- The mutually exclusive `const_token` and
        `mutability` fields of `Type::Ptr` have been unified into an enum of type
        `PointerMutability`, which was already previously used by `Expr::RawAddr`.\n\n-
        Every `Type` variant now holds attributes, which can represent the attributes
        of element types inside a tuple type, or attributes for a function return
        type.\n\n- `BareFnArg` is renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`,
        in addition to the existing use in `Type::FnPtr`.\n\n#### Expressions\n\n-
        In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed
        to `inputs_begin` and `inputs_end` to indicate the beginning and ending `|`
        token of the closure inputs.\n\n#### Statements\n\n- Attributes are now preserved
        on all expression kinds in statement position. Previously, parsing would silently
        lose attributes on some expression statements without a dedicated Expr variant,
        such as tail-call expressions.\n\n#### Patterns\n\n- The `guard` field of
        `Arm` is replaced by a new `Pat::Guard` variant held in the arm's `pat`.\n\n####
        Items\n\n- The `unsafety` field of `Signature`, which represented the presence
        or absence of `unsafe`, is replaced by a 3-way `Safety` enum which may be
        safe, unsafe, or default. `ForeignItem::Static` also gets a `Safety`.\n\n-
        Some of the fields of `Receiver` have been split to a non-exhaustive `ReceiverKind`
        enum to create room for proposed new kinds of method receivers, such as pinned.\n\n-
        Type aliases now hold a `WhereClausePlacement` to distinguish between early
        placement (which is the default for item-level type aliases and is *deprecated*
        in associated type aliases) and late placement (which is the default for associated
        type aliases and is *unstable* in item-level type aliases). Parsing and printing
        a syntax tree will now preserve the where-clause placement rather than rewriting
        it to the default placement for the item kind.\n\n#### Generics\n\n- `WherePredicate::Lifetime`
        and `WherePredicate::Type` have a new field holding the attributes on the
        where-predicates.\n\n- `GenericParam::Type` and `GenericParam::Const` now
        match the rest of the syntax tree in holding their optional default using
        a single Option of tuple, rather than a pair of Option.\n\n#### Literals\n\n-
        The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes,
        matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any`
        may be used to parse lifetimes permissive of keywords.\n\n- `LitInt` and `LitFloat`
        no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)`
        and then match `Lit::Int` or `Lit::Float`.\n\n- The `StrStyle` enum was unused
        and has been deleted.\n\n#### More\n\n- `File` contains a new `Option<Frontmatter>`,
        but does not yet parse frontmatter in `syn::parse_file` until that language
        feature progresses closer to stabilization.\n\n- Some enums no longer provide
        `From` impls. Construct the variant by name instead, such as `Expr::Array(e)`
        in place of `e.into()`.\n\n- The `pop` method of `Punctuated<T, P>` now returns
        `Option<T>` discarding the trailing punctuation if any, rather than `Option<Pair<T,
        P>>`. A new method `pop_pair` provides the old behavior.\n\n- Syntax tree
        traversal (`visit`, `visit_mut`, `fold`) no longer provides a method for processing
        `Span`. This was already incompletely supported and never walked most of the
        spans in a syntax tree.\n\n- The `Speculative` and `AnyDelimiter` traits have
        been sealed and cannot be implemented for types outside of Syn's `ParseStream`.\n\n###
        [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119)\n\n[Compare
        Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119)\n\n-
        Preserve attributes on tail-call expressions in statement position ([#&#8203;1994](https://redirect.github.com/dtolnay/syn/issues/1994))\n-
        Parse field-representing types builtin in type position ([#&#8203;1996](https://redirect.github.com/dtolnay/syn/issues/1996))\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
        At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
        defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
        manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
        conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
        Close this PR and you won't be reminded about these updates again.\n\n---\n\n
        - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
        box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
        View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
      change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1116
      child_jobs: []
      commit_id: 164c15016d264f5e05ed1ddf46e043cdde370fe7
      event_id: f66981d0-857a-11f1-8f09-a78b32d2340b
      executor:
        hostname: 2d72f0692154
        inventory_file: /var/lib/zuul/builds/9bc50d50d41f4309b4a9e4e23153a206/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/9bc50d50d41f4309b4a9e4e23153a206/work/logs
        result_data_file: /var/lib/zuul/builds/9bc50d50d41f4309b4a9e4e23153a206/work/results.json
        src_root: /var/lib/zuul/builds/9bc50d50d41f4309b4a9e4e23153a206/work/src
        work_root: /var/lib/zuul/builds/9bc50d50d41f4309b4a9e4e23153a206/work
      include_vars: []
      items:
      - branch: main
        change: '1116'
        change_message: "fix(deps): update rust crate syn to v3\n\nThis PR contains
          the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n|
          [syn](https://redirect.github.com/dtolnay/syn) | dependencies | major |
          `2.0.100` \u2192 `3.0.0` |\n| [syn](https://redirect.github.com/dtolnay/syn)
          | build-dependencies | major | `2.0.100` \u2192 `3.0.0` |\n\n---\n\n###
          Release Notes\n\n<details>\n<summary>dtolnay/syn (syn)</summary>\n\n###
          [`v3.0.0`](https://redirect.github.com/dtolnay/syn/releases/tag/3.0.0)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.119...3.0.0)\n\nThis
          release contains adjustments to the syntax tree to account for ongoing Rust
          language development from the 3 years since syn 2.0.0 and to anticipate
          some in-flight Rust language RFCs.\n\nThese include: default values in fields,
          pinned type sugar, raw lifetimes, generator blocks and functions, unnamed
          enum variants, attributes in tuple types and tuple patterns, named arguments
          in parenthesized generic argument lists, lightweight clones, const traits,
          const function pointers, mutability restricted fields, supertrait auto implementation,
          final associated functions, trait implementability restrictions, const blocks
          in path arguments, item-level const blocks, return type notation, never
          patterns, function delegation, mutable by-reference bindings, in-place initialization,
          field projections, explicitly dyn-compatible traits, view types, file-level
          frontmatter, generic const arguments, guard patterns, lazy type aliases,
          explicitly safe foreign items, super let, unsafe fields, pattern types,
          heterogeneous try-blocks, function contracts, async function trait bounds,
          static closure coroutine syntax, unsafe binder types, move expressions,
          for-await loops, and postfix keywords.\n\n<br>\n\n<p align=\"center\"><a
          href=\"https://docs.rs/syn/3/syn\">[API documentation for 3.0]</a></p>\n\n###
          Breaking changes\n#### Modifiers\n\nTo reserve more room for language evolution,
          there are 10 new non-exhaustive structs in the syntax tree having the following
          commonality:\n\n- Name ending in `Modifiers`. {`BlockModifiers`, `ClosureModifiers`,
          `ConstModifiers`, `FieldModifiers`, `FnModifiers`, `ImplModifiers`, `LocalModifiers`,
          `TraitBoundModifiers`, `TraitModifiers`, `TypeModifiers`}\n\n- Each implements
          `Default`. The default value is guaranteed to comprise no tokens.\n\n- Non-exhaustive.
          Can only be instantiated by Syn's parser or by creating and then mutating
          `\u2581\u2581Modifiers::default()`.\n\n- Does not implement `Parse`. When
          parsing, they are parsed by the enclosing syntax tree node.\n\n- Does not
          implement `ToTokens`. In some cases the syntax that these nodes might hold
          in the future is not necessarily contiguous tokens.\n\n- Provides `.require_empty()
          -> Result<()>` which returns a meaningfully spanned error if the modifiers
          are different from the empty default. This enables a caller to reject syntax
          it does not recognize without knowing what that syntax may be.\n\n#### Types\n\n-
          `Type::BareFn` has been renamed to `Type::FnPtr` to mirror the compiler's
          terminology. Together with this, `BareVariadic` is renamed to `FnPtrVariadic`.\n\n-
          The mutually exclusive `const_token` and `mutability` fields of `Type::Ptr`
          have been unified into an enum of type `PointerMutability`, which was already
          previously used by `Expr::RawAddr`.\n\n- Every `Type` variant now holds
          attributes, which can represent the attributes of element types inside a
          tuple type, or attributes for a function return type.\n\n- `BareFnArg` is
          renamed to `NamedArg` and is used in `ParenthesizedGenericArguments`, in
          addition to the existing use in `Type::FnPtr`.\n\n#### Expressions\n\n-
          In `Expr::Closure`, the fields `or1_token` and `or2_token` have been renamed
          to `inputs_begin` and `inputs_end` to indicate the beginning and ending
          `|` token of the closure inputs.\n\n#### Statements\n\n- Attributes are
          now preserved on all expression kinds in statement position. Previously,
          parsing would silently lose attributes on some expression statements without
          a dedicated Expr variant, such as tail-call expressions.\n\n#### Patterns\n\n-
          The `guard` field of `Arm` is replaced by a new `Pat::Guard` variant held
          in the arm's `pat`.\n\n#### Items\n\n- The `unsafety` field of `Signature`,
          which represented the presence or absence of `unsafe`, is replaced by a
          3-way `Safety` enum which may be safe, unsafe, or default. `ForeignItem::Static`
          also gets a `Safety`.\n\n- Some of the fields of `Receiver` have been split
          to a non-exhaustive `ReceiverKind` enum to create room for proposed new
          kinds of method receivers, such as pinned.\n\n- Type aliases now hold a
          `WhereClausePlacement` to distinguish between early placement (which is
          the default for item-level type aliases and is *deprecated* in associated
          type aliases) and late placement (which is the default for associated type
          aliases and is *unstable* in item-level type aliases). Parsing and printing
          a syntax tree will now preserve the where-clause placement rather than rewriting
          it to the default placement for the item kind.\n\n#### Generics\n\n- `WherePredicate::Lifetime`
          and `WherePredicate::Type` have a new field holding the attributes on the
          where-predicates.\n\n- `GenericParam::Type` and `GenericParam::Const` now
          match the rest of the syntax tree in holding their optional default using
          a single Option of tuple, rather than a pair of Option.\n\n#### Literals\n\n-
          The `Parse` implementation of `Lifetime` no longer permits keyword lifetimes,
          matching a change in Rust 1.81 to deny such lifetimes pre-expansion. `Lifetime::parse_any`
          may be used to parse lifetimes permissive of keywords.\n\n- `LitInt` and
          `LitFloat` no longer implement `From<proc_macro2::Literal>`. Use `Lit::new(literal)`
          and then match `Lit::Int` or `Lit::Float`.\n\n- The `StrStyle` enum was
          unused and has been deleted.\n\n#### More\n\n- `File` contains a new `Option<Frontmatter>`,
          but does not yet parse frontmatter in `syn::parse_file` until that language
          feature progresses closer to stabilization.\n\n- Some enums no longer provide
          `From` impls. Construct the variant by name instead, such as `Expr::Array(e)`
          in place of `e.into()`.\n\n- The `pop` method of `Punctuated<T, P>` now
          returns `Option<T>` discarding the trailing punctuation if any, rather than
          `Option<Pair<T, P>>`. A new method `pop_pair` provides the old behavior.\n\n-
          Syntax tree traversal (`visit`, `visit_mut`, `fold`) no longer provides
          a method for processing `Span`. This was already incompletely supported
          and never walked most of the spans in a syntax tree.\n\n- The `Speculative`
          and `AnyDelimiter` traits have been sealed and cannot be implemented for
          types outside of Syn's `ParseStream`.\n\n### [`v2.0.119`](https://redirect.github.com/dtolnay/syn/releases/tag/2.0.119)\n\n[Compare
          Source](https://redirect.github.com/dtolnay/syn/compare/2.0.118...2.0.119)\n\n-
          Preserve attributes on tail-call expressions in statement position ([#&#8203;1994](https://redirect.github.com/dtolnay/syn/issues/1994))\n-
          Parse field-representing types builtin in type position ([#&#8203;1996](https://redirect.github.com/dtolnay/syn/issues/1996))\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: (UTC)\n\n- Branch creation\n  -
          At any time (no schedule defined)\n- Automerge\n  - At any time (no schedule
          defined)\n\n\U0001F6A6 **Automerge**: Disabled by config. Please merge this
          manually once you are satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes
          conflicted, or you tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**:
          Close this PR and you won't be reminded about these updates again.\n\n---\n\n
          - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this
          box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).
          View the [repository job log](https://developer.mend.io/github/vexxhost/magnum-cluster-api).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjUuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI2NS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->\n"
        change_url: https://github.com/vexxhost/magnum-cluster-api/pull/1116
        commit_id: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        patchset: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        project:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          name: vexxhost/magnum-cluster-api
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        topic: null
      job: magnum-cluster-api-hydrophone-v1.35.5-cilium
      jobtags: []
      max_attempts: 3
      message: Zml4KGRlcHMpOiB1cGRhdGUgcnVzdCBjcmF0ZSBzeW4gdG8gdjMKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVHlwZSB8IFVwZGF0ZSB8IENoYW5nZSB8CnwtLS18LS0tfC0tLXwtLS18CnwgW3N5bl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2R0b2xuYXkvc3luKSB8IGRlcGVuZGVuY2llcyB8IG1ham9yIHwgYDIuMC4xMDBgIOKGkiBgMy4wLjBgIHwKfCBbc3luXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZHRvbG5heS9zeW4pIHwgYnVpbGQtZGVwZW5kZW5jaWVzIHwgbWFqb3IgfCBgMi4wLjEwMGAg4oaSIGAzLjAuMGAgfAoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmR0b2xuYXkvc3luIChzeW4pPC9zdW1tYXJ5PgoKIyMjIFtgdjMuMC4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2R0b2xuYXkvc3luL3JlbGVhc2VzL3RhZy8zLjAuMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2R0b2xuYXkvc3luL2NvbXBhcmUvMi4wLjExOS4uLjMuMC4wKQoKVGhpcyByZWxlYXNlIGNvbnRhaW5zIGFkanVzdG1lbnRzIHRvIHRoZSBzeW50YXggdHJlZSB0byBhY2NvdW50IGZvciBvbmdvaW5nIFJ1c3QgbGFuZ3VhZ2UgZGV2ZWxvcG1lbnQgZnJvbSB0aGUgMyB5ZWFycyBzaW5jZSBzeW4gMi4wLjAgYW5kIHRvIGFudGljaXBhdGUgc29tZSBpbi1mbGlnaHQgUnVzdCBsYW5ndWFnZSBSRkNzLgoKVGhlc2UgaW5jbHVkZTogZGVmYXVsdCB2YWx1ZXMgaW4gZmllbGRzLCBwaW5uZWQgdHlwZSBzdWdhciwgcmF3IGxpZmV0aW1lcywgZ2VuZXJhdG9yIGJsb2NrcyBhbmQgZnVuY3Rpb25zLCB1bm5hbWVkIGVudW0gdmFyaWFudHMsIGF0dHJpYnV0ZXMgaW4gdHVwbGUgdHlwZXMgYW5kIHR1cGxlIHBhdHRlcm5zLCBuYW1lZCBhcmd1bWVudHMgaW4gcGFyZW50aGVzaXplZCBnZW5lcmljIGFyZ3VtZW50IGxpc3RzLCBsaWdodHdlaWdodCBjbG9uZXMsIGNvbnN0IHRyYWl0cywgY29uc3QgZnVuY3Rpb24gcG9pbnRlcnMsIG11dGFiaWxpdHkgcmVzdHJpY3RlZCBmaWVsZHMsIHN1cGVydHJhaXQgYXV0byBpbXBsZW1lbnRhdGlvbiwgZmluYWwgYXNzb2NpYXRlZCBmdW5jdGlvbnMsIHRyYWl0IGltcGxlbWVudGFiaWxpdHkgcmVzdHJpY3Rpb25zLCBjb25zdCBibG9ja3MgaW4gcGF0aCBhcmd1bWVudHMsIGl0ZW0tbGV2ZWwgY29uc3QgYmxvY2tzLCByZXR1cm4gdHlwZSBub3RhdGlvbiwgbmV2ZXIgcGF0dGVybnMsIGZ1bmN0aW9uIGRlbGVnYXRpb24sIG11dGFibGUgYnktcmVmZXJlbmNlIGJpbmRpbmdzLCBpbi1wbGFjZSBpbml0aWFsaXphdGlvbiwgZmllbGQgcHJvamVjdGlvbnMsIGV4cGxpY2l0bHkgZHluLWNvbXBhdGlibGUgdHJhaXRzLCB2aWV3IHR5cGVzLCBmaWxlLWxldmVsIGZyb250bWF0dGVyLCBnZW5lcmljIGNvbnN0IGFyZ3VtZW50cywgZ3VhcmQgcGF0dGVybnMsIGxhenkgdHlwZSBhbGlhc2VzLCBleHBsaWNpdGx5IHNhZmUgZm9yZWlnbiBpdGVtcywgc3VwZXIgbGV0LCB1bnNhZmUgZmllbGRzLCBwYXR0ZXJuIHR5cGVzLCBoZXRlcm9nZW5lb3VzIHRyeS1ibG9ja3MsIGZ1bmN0aW9uIGNvbnRyYWN0cywgYXN5bmMgZnVuY3Rpb24gdHJhaXQgYm91bmRzLCBzdGF0aWMgY2xvc3VyZSBjb3JvdXRpbmUgc3ludGF4LCB1bnNhZmUgYmluZGVyIHR5cGVzLCBtb3ZlIGV4cHJlc3Npb25zLCBmb3ItYXdhaXQgbG9vcHMsIGFuZCBwb3N0Zml4IGtleXdvcmRzLgoKPGJyPgoKPHAgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cHM6Ly9kb2NzLnJzL3N5bi8zL3N5biI+W0FQSSBkb2N1bWVudGF0aW9uIGZvciAzLjBdPC9hPjwvcD4KCiMjIyBCcmVha2luZyBjaGFuZ2VzCiMjIyMgTW9kaWZpZXJzCgpUbyByZXNlcnZlIG1vcmUgcm9vbSBmb3IgbGFuZ3VhZ2UgZXZvbHV0aW9uLCB0aGVyZSBhcmUgMTAgbmV3IG5vbi1leGhhdXN0aXZlIHN0cnVjdHMgaW4gdGhlIHN5bnRheCB0cmVlIGhhdmluZyB0aGUgZm9sbG93aW5nIGNvbW1vbmFsaXR5OgoKLSBOYW1lIGVuZGluZyBpbiBgTW9kaWZpZXJzYC4ge2BCbG9ja01vZGlmaWVyc2AsIGBDbG9zdXJlTW9kaWZpZXJzYCwgYENvbnN0TW9kaWZpZXJzYCwgYEZpZWxkTW9kaWZpZXJzYCwgYEZuTW9kaWZpZXJzYCwgYEltcGxNb2RpZmllcnNgLCBgTG9jYWxNb2RpZmllcnNgLCBgVHJhaXRCb3VuZE1vZGlmaWVyc2AsIGBUcmFpdE1vZGlmaWVyc2AsIGBUeXBlTW9kaWZpZXJzYH0KCi0gRWFjaCBpbXBsZW1lbnRzIGBEZWZhdWx0YC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZ3VhcmFudGVlZCB0byBjb21wcmlzZSBubyB0b2tlbnMuCgotIE5vbi1leGhhdXN0aXZlLiBDYW4gb25seSBiZSBpbnN0YW50aWF0ZWQgYnkgU3luJ3MgcGFyc2VyIG9yIGJ5IGNyZWF0aW5nIGFuZCB0aGVuIG11dGF0aW5nIGDiloHiloFNb2RpZmllcnM6OmRlZmF1bHQoKWAuCgotIERvZXMgbm90IGltcGxlbWVudCBgUGFyc2VgLiBXaGVuIHBhcnNpbmcsIHRoZXkgYXJlIHBhcnNlZCBieSB0aGUgZW5jbG9zaW5nIHN5bnRheCB0cmVlIG5vZGUuCgotIERvZXMgbm90IGltcGxlbWVudCBgVG9Ub2tlbnNgLiBJbiBzb21lIGNhc2VzIHRoZSBzeW50YXggdGhhdCB0aGVzZSBub2RlcyBtaWdodCBob2xkIGluIHRoZSBmdXR1cmUgaXMgbm90IG5lY2Vzc2FyaWx5IGNvbnRpZ3VvdXMgdG9rZW5zLgoKLSBQcm92aWRlcyBgLnJlcXVpcmVfZW1wdHkoKSAtPiBSZXN1bHQ8KCk+YCB3aGljaCByZXR1cm5zIGEgbWVhbmluZ2Z1bGx5IHNwYW5uZWQgZXJyb3IgaWYgdGhlIG1vZGlmaWVycyBhcmUgZGlmZmVyZW50IGZyb20gdGhlIGVtcHR5IGRlZmF1bHQuIFRoaXMgZW5hYmxlcyBhIGNhbGxlciB0byByZWplY3Qgc3ludGF4IGl0IGRvZXMgbm90IHJlY29nbml6ZSB3aXRob3V0IGtub3dpbmcgd2hhdCB0aGF0IHN5bnRheCBtYXkgYmUuCgojIyMjIFR5cGVzCgotIGBUeXBlOjpCYXJlRm5gIGhhcyBiZWVuIHJlbmFtZWQgdG8gYFR5cGU6OkZuUHRyYCB0byBtaXJyb3IgdGhlIGNvbXBpbGVyJ3MgdGVybWlub2xvZ3kuIFRvZ2V0aGVyIHdpdGggdGhpcywgYEJhcmVWYXJpYWRpY2AgaXMgcmVuYW1lZCB0byBgRm5QdHJWYXJpYWRpY2AuCgotIFRoZSBtdXR1YWxseSBleGNsdXNpdmUgYGNvbnN0X3Rva2VuYCBhbmQgYG11dGFiaWxpdHlgIGZpZWxkcyBvZiBgVHlwZTo6UHRyYCBoYXZlIGJlZW4gdW5pZmllZCBpbnRvIGFuIGVudW0gb2YgdHlwZSBgUG9pbnRlck11dGFiaWxpdHlgLCB3aGljaCB3YXMgYWxyZWFkeSBwcmV2aW91c2x5IHVzZWQgYnkgYEV4cHI6OlJhd0FkZHJgLgoKLSBFdmVyeSBgVHlwZWAgdmFyaWFudCBub3cgaG9sZHMgYXR0cmlidXRlcywgd2hpY2ggY2FuIHJlcHJlc2VudCB0aGUgYXR0cmlidXRlcyBvZiBlbGVtZW50IHR5cGVzIGluc2lkZSBhIHR1cGxlIHR5cGUsIG9yIGF0dHJpYnV0ZXMgZm9yIGEgZnVuY3Rpb24gcmV0dXJuIHR5cGUuCgotIGBCYXJlRm5BcmdgIGlzIHJlbmFtZWQgdG8gYE5hbWVkQXJnYCBhbmQgaXMgdXNlZCBpbiBgUGFyZW50aGVzaXplZEdlbmVyaWNBcmd1bWVudHNgLCBpbiBhZGRpdGlvbiB0byB0aGUgZXhpc3RpbmcgdXNlIGluIGBUeXBlOjpGblB0cmAuCgojIyMjIEV4cHJlc3Npb25zCgotIEluIGBFeHByOjpDbG9zdXJlYCwgdGhlIGZpZWxkcyBgb3IxX3Rva2VuYCBhbmQgYG9yMl90b2tlbmAgaGF2ZSBiZWVuIHJlbmFtZWQgdG8gYGlucHV0c19iZWdpbmAgYW5kIGBpbnB1dHNfZW5kYCB0byBpbmRpY2F0ZSB0aGUgYmVnaW5uaW5nIGFuZCBlbmRpbmcgYHxgIHRva2VuIG9mIHRoZSBjbG9zdXJlIGlucHV0cy4KCiMjIyMgU3RhdGVtZW50cwoKLSBBdHRyaWJ1dGVzIGFyZSBub3cgcHJlc2VydmVkIG9uIGFsbCBleHByZXNzaW9uIGtpbmRzIGluIHN0YXRlbWVudCBwb3NpdGlvbi4gUHJldmlvdXNseSwgcGFyc2luZyB3b3VsZCBzaWxlbnRseSBsb3NlIGF0dHJpYnV0ZXMgb24gc29tZSBleHByZXNzaW9uIHN0YXRlbWVudHMgd2l0aG91dCBhIGRlZGljYXRlZCBFeHByIHZhcmlhbnQsIHN1Y2ggYXMgdGFpbC1jYWxsIGV4cHJlc3Npb25zLgoKIyMjIyBQYXR0ZXJucwoKLSBUaGUgYGd1YXJkYCBmaWVsZCBvZiBgQXJtYCBpcyByZXBsYWNlZCBieSBhIG5ldyBgUGF0OjpHdWFyZGAgdmFyaWFudCBoZWxkIGluIHRoZSBhcm0ncyBgcGF0YC4KCiMjIyMgSXRlbXMKCi0gVGhlIGB1bnNhZmV0eWAgZmllbGQgb2YgYFNpZ25hdHVyZWAsIHdoaWNoIHJlcHJlc2VudGVkIHRoZSBwcmVzZW5jZSBvciBhYnNlbmNlIG9mIGB1bnNhZmVgLCBpcyByZXBsYWNlZCBieSBhIDMtd2F5IGBTYWZldHlgIGVudW0gd2hpY2ggbWF5IGJlIHNhZmUsIHVuc2FmZSwgb3IgZGVmYXVsdC4gYEZvcmVpZ25JdGVtOjpTdGF0aWNgIGFsc28gZ2V0cyBhIGBTYWZldHlgLgoKLSBTb21lIG9mIHRoZSBmaWVsZHMgb2YgYFJlY2VpdmVyYCBoYXZlIGJlZW4gc3BsaXQgdG8gYSBub24tZXhoYXVzdGl2ZSBgUmVjZWl2ZXJLaW5kYCBlbnVtIHRvIGNyZWF0ZSByb29tIGZvciBwcm9wb3NlZCBuZXcga2luZHMgb2YgbWV0aG9kIHJlY2VpdmVycywgc3VjaCBhcyBwaW5uZWQuCgotIFR5cGUgYWxpYXNlcyBub3cgaG9sZCBhIGBXaGVyZUNsYXVzZVBsYWNlbWVudGAgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBlYXJseSBwbGFjZW1lbnQgKHdoaWNoIGlzIHRoZSBkZWZhdWx0IGZvciBpdGVtLWxldmVsIHR5cGUgYWxpYXNlcyBhbmQgaXMgKmRlcHJlY2F0ZWQqIGluIGFzc29jaWF0ZWQgdHlwZSBhbGlhc2VzKSBhbmQgbGF0ZSBwbGFjZW1lbnQgKHdoaWNoIGlzIHRoZSBkZWZhdWx0IGZvciBhc3NvY2lhdGVkIHR5cGUgYWxpYXNlcyBhbmQgaXMgKnVuc3RhYmxlKiBpbiBpdGVtLWxldmVsIHR5cGUgYWxpYXNlcykuIFBhcnNpbmcgYW5kIHByaW50aW5nIGEgc3ludGF4IHRyZWUgd2lsbCBub3cgcHJlc2VydmUgdGhlIHdoZXJlLWNsYXVzZSBwbGFjZW1lbnQgcmF0aGVyIHRoYW4gcmV3cml0aW5nIGl0IHRvIHRoZSBkZWZhdWx0IHBsYWNlbWVudCBmb3IgdGhlIGl0ZW0ga2luZC4KCiMjIyMgR2VuZXJpY3MKCi0gYFdoZXJlUHJlZGljYXRlOjpMaWZldGltZWAgYW5kIGBXaGVyZVByZWRpY2F0ZTo6VHlwZWAgaGF2ZSBhIG5ldyBmaWVsZCBob2xkaW5nIHRoZSBhdHRyaWJ1dGVzIG9uIHRoZSB3aGVyZS1wcmVkaWNhdGVzLgoKLSBgR2VuZXJpY1BhcmFtOjpUeXBlYCBhbmQgYEdlbmVyaWNQYXJhbTo6Q29uc3RgIG5vdyBtYXRjaCB0aGUgcmVzdCBvZiB0aGUgc3ludGF4IHRyZWUgaW4gaG9sZGluZyB0aGVpciBvcHRpb25hbCBkZWZhdWx0IHVzaW5nIGEgc2luZ2xlIE9wdGlvbiBvZiB0dXBsZSwgcmF0aGVyIHRoYW4gYSBwYWlyIG9mIE9wdGlvbi4KCiMjIyMgTGl0ZXJhbHMKCi0gVGhlIGBQYXJzZWAgaW1wbGVtZW50YXRpb24gb2YgYExpZmV0aW1lYCBubyBsb25nZXIgcGVybWl0cyBrZXl3b3JkIGxpZmV0aW1lcywgbWF0Y2hpbmcgYSBjaGFuZ2UgaW4gUnVzdCAxLjgxIHRvIGRlbnkgc3VjaCBsaWZldGltZXMgcHJlLWV4cGFuc2lvbi4gYExpZmV0aW1lOjpwYXJzZV9hbnlgIG1heSBiZSB1c2VkIHRvIHBhcnNlIGxpZmV0aW1lcyBwZXJtaXNzaXZlIG9mIGtleXdvcmRzLgoKLSBgTGl0SW50YCBhbmQgYExpdEZsb2F0YCBubyBsb25nZXIgaW1wbGVtZW50IGBGcm9tPHByb2NfbWFjcm8yOjpMaXRlcmFsPmAuIFVzZSBgTGl0OjpuZXcobGl0ZXJhbClgIGFuZCB0aGVuIG1hdGNoIGBMaXQ6OkludGAgb3IgYExpdDo6RmxvYXRgLgoKLSBUaGUgYFN0clN0eWxlYCBlbnVtIHdhcyB1bnVzZWQgYW5kIGhhcyBiZWVuIGRlbGV0ZWQuCgojIyMjIE1vcmUKCi0gYEZpbGVgIGNvbnRhaW5zIGEgbmV3IGBPcHRpb248RnJvbnRtYXR0ZXI+YCwgYnV0IGRvZXMgbm90IHlldCBwYXJzZSBmcm9udG1hdHRlciBpbiBgc3luOjpwYXJzZV9maWxlYCB1bnRpbCB0aGF0IGxhbmd1YWdlIGZlYXR1cmUgcHJvZ3Jlc3NlcyBjbG9zZXIgdG8gc3RhYmlsaXphdGlvbi4KCi0gU29tZSBlbnVtcyBubyBsb25nZXIgcHJvdmlkZSBgRnJvbWAgaW1wbHMuIENvbnN0cnVjdCB0aGUgdmFyaWFudCBieSBuYW1lIGluc3RlYWQsIHN1Y2ggYXMgYEV4cHI6OkFycmF5KGUpYCBpbiBwbGFjZSBvZiBgZS5pbnRvKClgLgoKLSBUaGUgYHBvcGAgbWV0aG9kIG9mIGBQdW5jdHVhdGVkPFQsIFA+YCBub3cgcmV0dXJucyBgT3B0aW9uPFQ+YCBkaXNjYXJkaW5nIHRoZSB0cmFpbGluZyBwdW5jdHVhdGlvbiBpZiBhbnksIHJhdGhlciB0aGFuIGBPcHRpb248UGFpcjxULCBQPj5gLiBBIG5ldyBtZXRob2QgYHBvcF9wYWlyYCBwcm92aWRlcyB0aGUgb2xkIGJlaGF2aW9yLgoKLSBTeW50YXggdHJlZSB0cmF2ZXJzYWwgKGB2aXNpdGAsIGB2aXNpdF9tdXRgLCBgZm9sZGApIG5vIGxvbmdlciBwcm92aWRlcyBhIG1ldGhvZCBmb3IgcHJvY2Vzc2luZyBgU3BhbmAuIFRoaXMgd2FzIGFscmVhZHkgaW5jb21wbGV0ZWx5IHN1cHBvcnRlZCBhbmQgbmV2ZXIgd2Fsa2VkIG1vc3Qgb2YgdGhlIHNwYW5zIGluIGEgc3ludGF4IHRyZWUuCgotIFRoZSBgU3BlY3VsYXRpdmVgIGFuZCBgQW55RGVsaW1pdGVyYCB0cmFpdHMgaGF2ZSBiZWVuIHNlYWxlZCBhbmQgY2Fubm90IGJlIGltcGxlbWVudGVkIGZvciB0eXBlcyBvdXRzaWRlIG9mIFN5bidzIGBQYXJzZVN0cmVhbWAuCgojIyMgW2B2Mi4wLjExOWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kdG9sbmF5L3N5bi9yZWxlYXNlcy90YWcvMi4wLjExOSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2R0b2xuYXkvc3luL2NvbXBhcmUvMi4wLjExOC4uLjIuMC4xMTkpCgotIFByZXNlcnZlIGF0dHJpYnV0ZXMgb24gdGFpbC1jYWxsIGV4cHJlc3Npb25zIGluIHN0YXRlbWVudCBwb3NpdGlvbiAoWyMmIzgyMDM7MTk5NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2R0b2xuYXkvc3luL2lzc3Vlcy8xOTk0KSkKLSBQYXJzZSBmaWVsZC1yZXByZXNlbnRpbmcgdHlwZXMgYnVpbHRpbiBpbiB0eXBlIHBvc2l0aW9uIChbIyYjODIwMzsxOTk2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZHRvbG5heS9zeW4vaXNzdWVzLzE5OTYpKQoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IChVVEMpCgotIEJyYW5jaCBjcmVhdGlvbgogIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpCi0gQXV0b21lcmdlCiAgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkKCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhlc2UgdXBkYXRlcyBhZ2Fpbi4KCi0tLQoKIC0gWyBdIDwhLS0gcmViYXNlLWNoZWNrIC0tPklmIHlvdSB3YW50IHRvIHJlYmFzZS9yZXRyeSB0aGlzIFBSLCBjaGVjayB0aGlzIGJveAoKLS0tCgpUaGlzIFBSIHdhcyBnZW5lcmF0ZWQgYnkgW01lbmQgUmVub3ZhdGVdKGh0dHBzOi8vbWVuZC5pby9yZW5vdmF0ZS8pLiBWaWV3IHRoZSBbcmVwb3NpdG9yeSBqb2IgbG9nXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2dpdGh1Yi92ZXh4aG9zdC9tYWdudW0tY2x1c3Rlci1hcGkpLgo8IS0tcmVub3ZhdGUtZGVidWc6ZXlKamNtVmhkR1ZrU1c1V1pYSWlPaUkwTXk0eU5qVXVNU0lzSW5Wd1pHRjBaV1JKYmxabGNpSTZJalF6TGpJMk5TNHhJaXdpZEdGeVoyVjBRbkpoYm1Ob0lqb2liV0ZwYmlJc0lteGhZbVZzY3lJNlcxMTktLT4K
      override_checkout: master
      patchset: 164c15016d264f5e05ed1ddf46e043cdde370fe7
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 0ed6d780cbe575683f1d14d6e57182b854f8db3d
          trusted/project_2/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: c286bf94224b5660b8e49e9a058289e61062a9a0
          untrusted/project_0/opendev.org/openstack/devstack:
            canonical_name: opendev.org/openstack/devstack
            checkout: master
            commit: 493835a61a996731a7031861f80c7629acd5d6f2
          untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs:
            canonical_name: opendev.org/openstack/openstack-zuul-jobs
            checkout: master
            commit: adfb3f80f75ad55de5c65b34400d4beaa8ae7780
          untrusted/project_2/github.com/vexxhost/zuul-config:
            canonical_name: github.com/vexxhost/zuul-config
            checkout: main
            commit: 298983cd1253e6833abdb49d87d912527e0e6597
          untrusted/project_3/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 0ed6d780cbe575683f1d14d6e57182b854f8db3d
          untrusted/project_4/github.com/vexxhost/zuul-jobs:
            canonical_name: github.com/vexxhost/zuul-jobs
            checkout: main
            commit: c286bf94224b5660b8e49e9a058289e61062a9a0
          untrusted/project_5/github.com/vexxhost/magnum-cluster-api:
            canonical_name: github.com/vexxhost/magnum-cluster-api
            checkout: main
            commit: 164c15016d264f5e05ed1ddf46e043cdde370fe7
        playbooks:
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/run.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/playbook_0/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/playbook_0/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/playbook_0/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/playbook_0/role_5/zuul-jobs/roles
        post_playbooks:
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/post.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/post_playbook_0/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/post_playbook_0/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_0/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_0/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_0/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_0/role_5/zuul-jobs/roles
        - path: untrusted/project_0/opendev.org/openstack/devstack/playbooks/post.yaml
          roles:
          - checkout: master
            checkout_description: playbook branch
            link_name: ansible/post_playbook_1/role_0/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/post_playbook_1/role_0/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_1/role_1/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/post_playbook_1/role_1/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_1/role_3/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_1/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_1/role_4/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_1/role_4/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_2/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_2/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_2/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_2/role_2/zuul-jobs/roles
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/post-logs.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/post_playbook_3/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/post_playbook_3/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/post_playbook_3/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/post_playbook_3/role_2/zuul-jobs/roles
        pre_playbooks:
        - path: trusted/project_0/github.com/vexxhost/zuul-config/playbooks/base/pre.yaml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_0/role_1/zuul-jobs
            link_target: trusted/project_1/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_0/role_1/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_0/role_2/zuul-jobs
            link_target: trusted/project_2/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_0/role_2/zuul-jobs/roles
        - path: untrusted/project_0/opendev.org/openstack/devstack/playbooks/pre.yaml
          roles:
          - checkout: master
            checkout_description: playbook branch
            link_name: ansible/pre_playbook_1/role_0/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/pre_playbook_1/role_0/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_1/role_1/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/pre_playbook_1/role_1/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_1/role_3/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_1/role_3/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_1/role_4/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_1/role_4/zuul-jobs/roles
        - path: untrusted/project_5/github.com/vexxhost/magnum-cluster-api/zuul.d/playbooks/hydrophone/pre.yml
          roles:
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_1/devstack
            link_target: untrusted/project_0/opendev.org/openstack/devstack
            role_path: ansible/pre_playbook_2/role_1/devstack/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_2/openstack-zuul-jobs
            link_target: untrusted/project_1/opendev.org/openstack/openstack-zuul-jobs
            role_path: ansible/pre_playbook_2/role_2/openstack-zuul-jobs/roles
          - checkout: master
            checkout_description: job override ref
            link_name: ansible/pre_playbook_2/role_4/zuul-jobs
            link_target: untrusted/project_3/opendev.org/zuul/zuul-jobs
            role_path: ansible/pre_playbook_2/role_4/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/pre_playbook_2/role_5/zuul-jobs
            link_target: untrusted/project_4/github.com/vexxhost/zuul-jobs
            role_path: ansible/pre_playbook_2/role_5/zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/vexxhost/magnum-cluster-api
        name: vexxhost/magnum-cluster-api
        short_name: magnum-cluster-api
        src_dir: src/github.com/vexxhost/magnum-cluster-api
      projects:
        github.com/novnc/novnc:
          canonical_hostname: github.com
          canonical_name: github.com/novnc/novnc
          checkout: master
          checkout_description: job override ref
          commit: 7c36fabe599e053c5a81e98e091ac636f6c1e174
          name: novnc/novnc
          required: true
          short_name: novnc
          src_dir: src/github.com/novnc/novnc
        github.com/vexxhost/magnum-cluster-api:
          canonical_hostname: github.com
          canonical_name: github.com/vexxhost/magnum-cluster-api
          checkout: main
          checkout_description: zuul branch
          commit: 164c15016d264f5e05ed1ddf46e043cdde370fe7
          name: vexxhost/magnum-cluster-api
          required: false
          short_name: magnum-cluster-api
          src_dir: src/github.com/vexxhost/magnum-cluster-api
        opendev.org/openstack/barbican:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/barbican
          checkout: master
          checkout_description: job override ref
          commit: 510b69abd0a05c9e5d77443f222ea6bf05b99e66
          name: openstack/barbican
          required: true
          short_name: barbican
          src_dir: src/opendev.org/openstack/barbican
        opendev.org/openstack/cinder:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/cinder
          checkout: master
          checkout_description: job override ref
          commit: 6bdfcc1ea2e82ed32844f27bf0edf6c7ac144608
          name: openstack/cinder
          required: true
          short_name: cinder
          src_dir: src/opendev.org/openstack/cinder
        opendev.org/openstack/devstack:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/devstack
          checkout: master
          checkout_description: job override ref
          commit: 493835a61a996731a7031861f80c7629acd5d6f2
          name: openstack/devstack
          required: true
          short_name: devstack
          src_dir: src/opendev.org/openstack/devstack
        opendev.org/openstack/glance:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/glance
          checkout: master
          checkout_description: job override ref
          commit: d2a95f439c2f31973952ac75531f1924168902b7
          name: openstack/glance
          required: true
          short_name: glance
          src_dir: src/opendev.org/openstack/glance
        opendev.org/openstack/keystone:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/keystone
          checkout: master
          checkout_description: job override ref
          commit: 30ef2ffa65a3486ef882f00538e20f2253c57d4c
          name: openstack/keystone
          required: true
          short_name: keystone
          src_dir: src/opendev.org/openstack/keystone
        opendev.org/openstack/magnum:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/magnum
          checkout: master
          checkout_description: job override ref
          commit: 5a492d64c1146744b3d6237b47d507422480840f
          name: openstack/magnum
          required: true
          short_name: magnum
          src_dir: src/opendev.org/openstack/magnum
        opendev.org/openstack/manila:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/manila
          checkout: master
          checkout_description: job override ref
          commit: 369fe49bdbd0d5744a0f96df15a9ab4240bca570
          name: openstack/manila
          required: true
          short_name: manila
          src_dir: src/opendev.org/openstack/manila
        opendev.org/openstack/neutron:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/neutron
          checkout: master
          checkout_description: job override ref
          commit: 92553f76934dc1d32dbbc1fdebe37074937f187c
          name: openstack/neutron
          required: true
          short_name: neutron
          src_dir: src/opendev.org/openstack/neutron
        opendev.org/openstack/nova:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/nova
          checkout: master
          checkout_description: job override ref
          commit: 9d1dd3b8acd2df19d83692e0cade3911c17032b0
          name: openstack/nova
          required: true
          short_name: nova
          src_dir: src/opendev.org/openstack/nova
        opendev.org/openstack/octavia:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/octavia
          checkout: master
          checkout_description: job override ref
          commit: 78d38afc126c37e2ec65859e8cfc770eb5457075
          name: openstack/octavia
          required: true
          short_name: octavia
          src_dir: src/opendev.org/openstack/octavia
        opendev.org/openstack/os-test-images:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/os-test-images
          checkout: master
          checkout_description: job override ref
          commit: 5d0367e03788764f41da8effffa14e3eac513201
          name: openstack/os-test-images
          required: true
          short_name: os-test-images
          src_dir: src/opendev.org/openstack/os-test-images
        opendev.org/openstack/ovn-octavia-provider:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/ovn-octavia-provider
          checkout: master
          checkout_description: job override ref
          commit: 40b10a608e420c25bb4221ee17e92665e93b201a
          name: openstack/ovn-octavia-provider
          required: true
          short_name: ovn-octavia-provider
          src_dir: src/opendev.org/openstack/ovn-octavia-provider
        opendev.org/openstack/placement:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/placement
          checkout: master
          checkout_description: job override ref
          commit: e5f529669680cbc2f64e5c7534ea1f0c2b4b7687
          name: openstack/placement
          required: true
          short_name: placement
          src_dir: src/opendev.org/openstack/placement
        opendev.org/openstack/python-magnumclient:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/python-magnumclient
          checkout: master
          checkout_description: job override ref
          commit: 43fc0de28fc0f334a2f8b452ef1ab567e57470b4
          name: openstack/python-magnumclient
          required: true
          short_name: python-magnumclient
          src_dir: src/opendev.org/openstack/python-magnumclient
        opendev.org/openstack/requirements:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/requirements
          checkout: master
          checkout_description: job override ref
          commit: 1244391f2eb1a5b626c84ea9623d631ce5820ff7
          name: openstack/requirements
          required: true
          short_name: requirements
          src_dir: src/opendev.org/openstack/requirements
        opendev.org/openstack/swift:
          canonical_hostname: opendev.org
          canonical_name: opendev.org/openstack/swift
          checkout: master
          checkout_description: job override ref
          commit: dc8a59c6b2f32015aac309a21d64b67d8b1f5a30
          name: openstack/swift
          required: true
          short_name: swift
          src_dir: src/opendev.org/openstack/swift
      ref: refs/pull/1116/head
      resources: {}
      tenant: oss
      timeout: 7200
      topic: null
      voting: true
    zuul_copy_output:
      /etc/ceph: logs
      /etc/glusterfs/glusterd.vol: logs
      /etc/libvirt: logs
      /etc/lvm: logs
      /etc/resolv.conf: logs
      /etc/sudoers: logs
      /etc/sudoers.d: logs
      /var/log/ceph: logs
      /var/log/glusterfs: logs
      /var/log/libvirt: logs
      /var/log/mysql: logs
      /var/log/openvswitch: logs
      /var/log/postgresql: logs
      /var/log/rabbitmq: logs
      /var/log/unbound.log: logs
      '{{ devstack_conf_dir }}/.localrc.auto': logs
      '{{ devstack_conf_dir }}/.stackenv': logs
      '{{ devstack_conf_dir }}/local.conf': logs
      '{{ devstack_conf_dir }}/localrc': logs
      '{{ devstack_full_log}}': logs
      '{{ devstack_log_dir }}/atop': logs
      '{{ devstack_log_dir }}/devstacklog.txt': logs
      '{{ devstack_log_dir }}/devstacklog.txt.summary': logs
      '{{ devstack_log_dir }}/dstat-csv.log': logs
      '{{ devstack_log_dir }}/qemu.coredump': logs
      '{{ devstack_log_dir }}/tcpdump.pcap': logs
      '{{ devstack_log_dir }}/worlddump-latest.txt': logs
      '{{ stage_dir }}/apache': logs
      '{{ stage_dir }}/apache_config': logs
      '{{ stage_dir }}/audit.log': logs
      '{{ stage_dir }}/core': logs
      '{{ stage_dir }}/deprecations.log': logs
      '{{ stage_dir }}/df.txt': logs
      '{{ stage_dir }}/dpkg-l.txt': logs
      '{{ stage_dir }}/etc': logs
      '{{ stage_dir }}/iptables.txt': logs
      '{{ stage_dir }}/listen53.txt': logs
      '{{ stage_dir }}/mount.txt': logs
      '{{ stage_dir }}/performance.json': logs
      '{{ stage_dir }}/pip2-freeze.txt': logs
      '{{ stage_dir }}/pip3-freeze.txt': logs
      '{{ stage_dir }}/rpm-qa.txt': logs
      '{{ stage_dir }}/services.txt': logs
      '{{ stage_dir }}/verify_tempest_conf.log': logs
