Skip to content
Snippets Groups Projects
  1. Jan 14, 2025
  2. Nov 05, 2024
    • Will Szumski's avatar
      Align Kayobe Ansible version with Kolla Ansible · f5d026ba
      Will Szumski authored
      This change bumps up the maximum supported Ansible version to 10.x
      (ansible-core 2.17.x) and minimum to 9.x. This synchronises Kayobe with
      Kolla Ansible.
      
      Change-Id: Idfbf0eed0b2333d550f822e40a0d96ae227f6159
      f5d026ba
  3. Jun 17, 2024
  4. May 31, 2024
  5. Feb 13, 2024
  6. Feb 02, 2024
  7. Dec 01, 2023
    • Pierre Riteau's avatar
      Add python3-devel to Kayobe dependencies · 611bec88
      Pierre Riteau authored
      When python3 is missing from the host operating system, the install.sh
      and install-dev.sh scripts fail with the following error:
      
          Creating virtual environment in /home/centos/kayobe-venv
          /home/centos/kayobe/dev/functions: line 169: python3: command not found
      
      Change-Id: I50d47ceeeae803545d78a40bbeec1aaa2f5112b1
      611bec88
  8. Nov 29, 2023
    • Mark Goddard's avatar
      CI: Run configuration dump against localhost · 0f1f009a
      Mark Goddard authored
      Since using the to_bool function in more places in
      I3a5a43fef9c3d68d0db02be12b9f892c437e513d, we are now more strict about
      the result of the variable dump. If there are no controllers in the
      inventory, the result will not be a valid boolean and the to_bool
      function will exit non-zero.
      
      This change fixes the issue by running against localhost, which should
      always be in the inventory.
      
      Change-Id: Idcfd9d335f11f6c4d676033128d207f62b363ee9
      0f1f009a
  9. Oct 09, 2023
    • Pierre Riteau's avatar
      Revert "CI: Disable bare metal testing on RL9/c9s" · 990370a3
      Pierre Riteau authored
      This requires disabling libvirt_vm_trust_guest_rx_filters, which when
      enabled triggers the following errors when booting baremetal instances
      with Tenks on Libvirt 9 (and most likely since 8.9.0):
      
          Cannot set interface flags on 'macvtap1': Value too large for defined data type
      
      This is apparently triggered by a Libvirt commit refreshing rx-filters
      more often [1].
      
      As explained in I71a2051d8acd63379bd70bc1287a059d4a7f6387, this setting
      was added to allow traffic destined for other MAC addresses to reach VMs
      when using a macvtap interface.
      
      This will prevent multicast from working, but we don't need it for
      baremetal tests in CI.
      
      This setting will be enabled again once the issue is resolved in either
      Libvirt or Tenks.
      
      This reverts commit 21c68bbf.
      
      Also increase timeout of upgrade jobs which is too short now due to the
      added delay added by bare metal testing.
      
      [1] https://gitlab.com/libvirt/libvirt/-/commit/060d4c83ef436cf56abfad51a4d64c39448e199d
      
      Change-Id: I2cfd2667abb1ae8988b7a7fd9761b75c20a0eaa4
      990370a3
  10. Aug 30, 2023
  11. May 24, 2023
    • Mark Goddard's avatar
      dev: Improve error checking for config check functions · 89fc4fa2
      Mark Goddard authored
      Various functions in the development/testing scripts rely on 'kayobe
      configuration dump' to extract the value of flags. If this command fails
      for any reason, we should exit the script. Currently, some places we
      continue and return 1, since we check the output against the string
      'true'.
      
      The to_bool helper function handles failure by checking for a valid
      boolean output, so let's use that everywhere.
      
      Change-Id: I3a5a43fef9c3d68d0db02be12b9f892c437e513d
      89fc4fa2
  12. Dec 14, 2022
    • Pierre Riteau's avatar
      Use master upper constraints · 5b84ef37
      Pierre Riteau authored
      Yoga upper constraints were used to keep compatibility with Python 3.6.
      This is not needed with all supported OS using Python 3.9 or newer.
      
      This reverts commits d2e0d64e and
      d190e9e3.
      
      Change-Id: I35a07bcc2b7c9cbb49fa60e6802cc6288a34fbd8
      5b84ef37
  13. Dec 12, 2022
    • Bartosz Bezak's avatar
      Move to Rocky Linux 9 · 2f447f65
      Bartosz Bezak authored
      CentOS Stream 8 support has been dropped. Migration path will be present
      in Yoga release - as a followup change.
      
      MichaelRigart.interfaces does not support custom routes for
      NetworkManager yet. It has been disabled in CI for Rocky Linux 9
      temporarily.
      
      Non-voting CentOS Stream 9 CI overcloud job is using RL9 container
      images (as kolla CI is not building CS9 images anymore).
      
      Change-Id: Idf5ee822b03ba40179803c981500a6bad37594bf
      2f447f65
  14. Oct 07, 2022
  15. Oct 04, 2022
  16. Jul 05, 2022
    • Pierre Riteau's avatar
      Use yoga upper constraints in dev scripts · d190e9e3
      Pierre Riteau authored
      This is required to be able to install tenks. Otherwise, we try to
      install Jinja2 3.1.2 which requires Python 3.7 or newer.
      
      Change-Id: Ie497b191b6de8bc818dc4a2a12f7129a02d0fd00
      d190e9e3
  17. May 25, 2022
    • Pierre Riteau's avatar
      Use yoga upper constraints to avoid Python version conflict · d2e0d64e
      Pierre Riteau authored
      Requirements upper constraints bumped python-novaclient to version
      18.0.0 [1], which requires Python 3.8 [2]. This results in failures when
      installing python-openstackclient on CentOS and Rocky with Python 3.6.
      
          ERROR: Cannot install python-openstackclient==5.8.0 because these package versions have conflicting dependencies.
      
          The conflict is caused by:
              python-openstackclient 5.8.0 depends on python-novaclient>=17.0.0
              The user requested (constraint) python-novaclient===18.0.0
      
      Work around this issue by using yoga upper constraints until we upgrade
      to CentOS Stream 9 and Rocky Linux 9.
      
      This also fixes another issue seen on Ubuntu where image uploads to
      Glance through Ansible fail with a 400 Bad Request error. This is caused
      by the bump of openstacksdk to version 0.99.0 and will be fixed by a new
      release of ansible-collections-openstack.
      
      [1] https://review.opendev.org/c/openstack/requirements/+/842808
      [2] https://review.opendev.org/c/openstack/python-novaclient/+/838944
      
      Change-Id: I40c6b898963c2218d41d37bd73d40ce8dcf22b87
      d2e0d64e
  18. Apr 12, 2022
  19. Mar 24, 2022
  20. Mar 18, 2022
  21. Mar 02, 2022
    • Mark Goddard's avatar
      CI: stop using zuul as kayobe_ansible_user in TLS jobs · a0665cd9
      Mark Goddard authored
      Previously we were using the zuul user in the TLS jobs. This was due to
      a permissions issue when accessing the CA certificate in kayobe-config
      in the zuul user's home directory.
      
      This change reverts to the default of using the stack user for the TLS
      jobs. In order to make this work, the generated CA cert chain is added
      to the trust store.
      
      Change-Id: I875f8976df75dee68ba00842fe624c29cc1b123c
      a0665cd9
  22. Feb 08, 2022
  23. Nov 26, 2021
    • Pierre Riteau's avatar
      Build overcloud host image directly with DIB · c35f112a
      Pierre Riteau authored
      As a first step towards supporting multiple overcloud disk images, this
      change introduces a new command to build a disk image directly with DIB:
      `kayobe overcloud host image build`.
      
      It also disables building a root disk image during Bifrost bootstrap if
      overcloud_dib_build_host_images is set to true.
      
      Change-Id: I93d242889e225b4e60254f6b9cc5eeb457294ac8
      Story: 2002098
      Task: 41693
      c35f112a
  24. Oct 26, 2021
  25. Sep 08, 2021
  26. Aug 21, 2021
    • Mark Goddard's avatar
      Use ansible_facts to reference facts · f639ad0b
      Mark Goddard authored
      By default, Ansible injects a variable for every fact, prefixed with
      ansible_. This can result in a large number of variables for each host,
      which at scale can incur a performance penalty. Ansible provides a
      configuration option [0] that can be set to False to prevent this
      injection of facts. In this case, facts should be referenced via
      ansible_facts.<fact>.
      
      This change updates all references to Ansible facts within Kayobe
      from using individual fact variables to using the items in the
      ansible_facts dictionary. This allows users to disable fact variable
      injection in their Ansible configuration, which may provide some
      performance improvement.
      
      This change disables fact variable injection in the ansible
      configuration used in CI, to catch any attempts to use the injected
      variables.
      
      [0] https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars
      
      Story: 2007993
      Task: 42464
      Depends-On: https://review.opendev.org/c/openstack/kolla-ansible/+/791276
      
      Change-Id: I14db53ed6e57d37bbd28dd5819e432e3fe6628b2
      f639ad0b
  27. Jul 22, 2021
  28. Jun 07, 2021
    • Mark Goddard's avatar
      Ubuntu: ensure /usr/bin/python is python3 · 82def9a5
      Mark Goddard authored
      /usr/bin/python may be python 2 on Focal, which causes problems with
      Ansible on the control host. By installing the python-is-python3 package
      we ensure that the correct interpreter is used.
      
      This change updates the installation documentation and development
      environment scripts.
      
      Story: 2004960
      Task: 42579
      
      Change-Id: Ie94099075bae3c491f9cf830c38e6cfc8af605a6
      82def9a5
  29. May 27, 2021
    • Mark Goddard's avatar
      docs: improve automated seed development info · d2e3f6f1
      Mark Goddard authored
      * add 'bridge_type: linuxbridge' to tenks configuration to avoid
        dependency on OVS
      * extend seed development environment testing to include overcloud
        provisioning and deployment
      * remove seed hypervisor and seed VM environments. These are very
        stale, and largely replaced by a-universe-from-nothing. Add a link to
        that workshop on the same page
      
      Change-Id: I9928e5912e6770bdcc1d5d0884d2f101c16ee6a9
      d2e3f6f1
  30. Apr 12, 2021
    • Mark Goddard's avatar
      CI: use retries for control host bootstrap in seed VM jobs · 760c2b79
      Mark Goddard authored
      All instances of 'kayobe control host bootstrap' in the development
      scripts use a helper function, except for during seed_hypervisor_deploy.
      The helper adds a retry mechanism to combat flakiness often seen during
      Ansible Galaxy installs.
      
      This change fixes the issue.
      
      TrivialFix
      
      Change-Id: I954cb604a18874744b3673ebf2e2c29caa18ce8f
      760c2b79
  31. Apr 06, 2021
    • Mark Goddard's avatar
      CentOS Stream 8: Use /usr/bin/which instead of bash function · 3084cf67
      Mark Goddard authored
      A bug has been introduced to the which package in CentOS Stream 8 which
      causes it to fail when used with the following bash options:
      
      set -u
      set -o pipefail
      
      Then, when running which we see the following output:
      
      environment: line 1: _declare: unbound variable
      
      As found by Pierre, this seems to be caused by the implementation of
      which as a bash function which references an unbound variable
      (_declare). It's tracked in Fedora by
      https://bugzilla.redhat.com/show_bug.cgi?id=1944877#
      
      .
      
      This change works around the issue by using the /usr/bin/which binary.
      
      Co-Authored-By: default avatarPierre Riteau <pierre@stackhpc.com>
      
      Change-Id: I468d4e0460c13791b9f01d5854ef45472528c6fe
      Story: 2008795
      Task: 42215
      3084cf67
  32. Mar 26, 2021
  33. Mar 23, 2021
    • Mark Goddard's avatar
      CI: Fix IP address detection in baremetal compute test · 77562073
      Mark Goddard authored
      The 'openstack server show <server> -f value -c addresses' command
      previously had output like this:
      
          <network name>=<IP>
      
      Now it shows a Python output like this:
      
          {'<network name>': ['IP']}
      
      This broke the parsing of the command output when determining which IP
      address to use to access a bare metal instance via SSH.
      
      This change fixes the issue by querying the server's port in Neutron,
      and using the fixed IP address.
      
      Change-Id: I55b5f185fb7136d3c6fa565aa46598f21c94eb43
      77562073
  34. Mar 01, 2021
    • Mark Goddard's avatar
      CI: add Ubuntu overcloud deploy job · 9f41cefc
      Mark Goddard authored
      * Use source images
      * Need to specify bash for &> syntax
      
      Issues worked around:
      
      * Manually configuring bridge via ip commands makes ifup fail to bring
        up the link. Adds a kayobe-network-bootstrap Zuul CI role that adds
        persistent configuration for the all-in-one network.
      
      * bridge not active after interfaces role bounce. Added a pause, similar
        to https://github.com/michaelrigart/ansible-role-interfaces/pull/31
      
      * fails installing docker python module for kolla user. WARNING: The
        repository located at mirror-int.ord.rax.opendev.org is not a trusted
        or secure host and is being ignored ERROR: No matching distribution
        found for docker===4.4.0 Adding trusted host for PyPI mirror.
      
      * Tenks fails to create block devices - missing qemu-img (in qemu-utils)
      
      * Tenks qemu emulator is different on Ubuntu
      
      Remaining issues:
      
      * Bare metal testing is unreliable on Ubuntu - some jobs see IPMI
        failures such as the following:
      
          ipmitool chassis bootdev pxe
      
          Error setting Chassis Boot Parameter 5\nError setting Chassis Boot
          Parameter 0\n
      
        Bare metal testing is disabled on Ubuntu for now.
      
      Depends-On: https://review.opendev.org/766984
      Depends-On: https://review.opendev.org/766958
      
      Story: 2004960
      Task: 29393
      
      Change-Id: I1985efae7c18f55c3ff7c27c17d6242523904f3e
      9f41cefc
  35. Feb 26, 2021
    • Mark Goddard's avatar
      CI: Fix overcloud and seed VM jobs on vexxhost clouds · f9d9afcf
      Mark Goddard authored
      This partially reverts commit 47bbb96b
      which triggered a retry on vexxhost clouds.
      
      The issue was introduced in Ie8fd965165e8d347d27528a2c16d0647e412ccdc,
      which applied some fixes for CentOS 8.3, and inadvertently removed
      the Tenks variable that forces the use of qemu for 'bare metal' VMs.
      This lead to autodetection of KVM, which does not work well when nested
      in all CI cloud providers.
      
      This change fixes the issue by forcing the use of qemu for the overcloud
      once more. It also adds a similar option for the seed VM job.
      
      Change-Id: I6bc8da2b8da903e09b97df8cd95c68a562c11db9
      f9d9afcf
  36. Feb 24, 2021
  37. Feb 05, 2021
    • Pierre Riteau's avatar
      Test building seed deployment images in the seed job · c84a9757
      Pierre Riteau authored
      This requires stackhpc.os-images v1.10.0 or newer, for compatibility
      with CentOS 8 when SELinux is enabled: we disable SELinux, but without
      rebooting it stays enabled.
      
      This Ansible role was updated to v1.10.2 in master and stable/victoria
      by I5efdbd52556721914fe69d7c6ba454b2c721b643, for another reason.
      Remember to bump the requirement when backporting to earlier releases.
      
      It also needs changes in the way we interact with Bifrost to avoid using
      the env-vars file which has been removed. This is implemented by change
      I25078e69acdf41a4ef9957f99fe5047de54b778d.
      
      Finally, it requires building seed deployment images only after
      deploying Bifrost, because the task copying images onto the seed expects
      /etc/kolla/bifrost to exist.
      
      We also copy log files to identify issues when the job fails.
      
      Change-Id: I4719b4d397c01b35c78cb84c6d686dd27742d1c0
      c84a9757
  38. Dec 16, 2020
    • Mark Goddard's avatar
      Fixes for CentOS 8.3 · 4398856e
      Mark Goddard authored
      * Bump stackhpc.libvirt-host to v1.7.1. On seed-hypervisors installed
        using CentOS 8.2 or earlier, interaction with libvirt may fail due to
        libgcrypt being incompatible. See
        https://github.com/stackhpc/ansible-role-libvirt-host/issues/42
      
      * Bump MichaelRigart.interfaces to v1.9.2. The CentOS 8.3 cloud image
        includes an ifcfg-ens3-1 file. See
        https://github.com/michaelrigart/ansible-role-interfaces/pull/93
      
      * Previously a second libvirt daemon was installed by Tenks on the host,
        however changes in libvirt 6.0.0 to separate libvirtd into multiple
        daemons do not allow for customisation of the PID files used by the
        new daemons. This leads to a conflict between the container and host
        daemons. Update the Tenks config to use the containerised Nova libvirt
        daemon. This depends on a change to the stackhpc.libvirt-host role:
        https://github.com/stackhpc/ansible-role-libvirt-host/pull/44
      
      * Not CentOS 8.3 related, but tox jobs are now failing on python
        dependencies. Remove upper limits from docker and paramiko.
      
      * Not CentOS 8.3 related, but Bifrost has enabled authentication by
        default. We are not ready to support this, so override it.
      
      Story: 2008429
      Task: 41378
      
      Change-Id: Ie8fd965165e8d347d27528a2c16d0647e412ccdc
      4398856e
  39. Oct 02, 2020
    • Mark Goddard's avatar
      dev: fix test scripts when ironic is disabled · 6a4e7c4e
      Mark Goddard authored
      While we always test baremetal compute in CI, development environments
      may not. Given that Ironic is now disabled by default, we should make
      this work out of the box.
      
      Story: 2008207
      Task: 41003
      
      Change-Id: Id3128380f5ff74d24265f6b2132c6d7992bf00ba
      6a4e7c4e
  40. Oct 01, 2020
Loading