Skip to content
Snippets Groups Projects
  1. Jan 08, 2021
    • Mark Goddard's avatar
      Fix --limit with commas · 017b092d
      Mark Goddard authored
      Kayobe allows specifying a --limit argument, which is passed through to
      Ansible. In some cases we wish to add an intersection with a group. This
      allows us to reuse playbooks for the seed, overcloud etc.
      
      For example, the lvm.yml playbook specifies a host list of
      seed-hypervisor:seed:overcloud. When executed as part of a kayobe
      overcloud host configure command, Kayobe passes a limit of overcloud. If
      the user specifies a --limit argument, this gets intersected with the
      overcloud limit: host1:&overcloud.
      
      The problem happens if the user specifies multiple parts to the host
      pattern in their limit using a comma, e.g. host1,host2. This results in
      host1,host2:&overcloud. Ansible ignores the colon, and treats this as
      host1 or host2:&overcloud.
      
      The solution is to use a comma to join the patterns if the user has used
      a comma: host1,host2,&overcloud
      
      Change-Id: Ibe42fa372c6fa0c539d2c2b0e238601286dc213d
      Story: 2008255
      Task: 41111
      017b092d
  2. Oct 14, 2020
  3. Oct 13, 2020
    • Pierre Riteau's avatar
      Fix failures in Docker storage driver check · 949ed03d
      Pierre Riteau authored
      In some environments the can_talk_to_docker key is missing from the
      result of docker_host_info when the call succeeds. Assume we can talk to
      Docker if this key is not present, instead of failing due to a missing
      attribute error.
      
      Change-Id: I7670410394b0bb5fc96e4166b6a20714f847250b
      949ed03d
  4. Oct 12, 2020
  5. Oct 07, 2020
    • Pierre Riteau's avatar
      Synchronise global extra variables files with defaults · 1b48a713
      Pierre Riteau authored
      In particular, lvm_group_data_enabled variables were missing.
      
      Change-Id: Ia73655812feaf5ce0598cdc71b673126423843a0
      1b48a713
    • Pierre Riteau's avatar
      Configure bifrost to use firewalld trusted zone · 9df0f00b
      Pierre Riteau authored
      Without this setting, bifrost creates a bifrost firewalld zone only
      allowing network traffic for Ironic services and assigns the
      provisioning network interface to it, potentially causing loss of
      connectivity.
      
      Using the public zone is suggested as a workaround [1] but is not
      sufficient: it allows SSH traffic, but blocks other services deployed on
      the seed, such as Docker registry traffic.
      
      [1] https://review.opendev.org/#/c/754406/
      
      Change-Id: I80f9d95f02e11fda5916f9a9dd257b688a9db7e2
      Story: 2008153
      Task: 40899
      9df0f00b
  6. Oct 06, 2020
  7. Oct 05, 2020
    • Mark Goddard's avatar
      Switch default docker storage driver to overlay2 · 869185ea
      Mark Goddard authored
      
      To avoid switching existing deployments from devicemapper to overlay2,
      we check the existing storage driver configuration directly with the
      Docker daemon, or if unreachable by reading the /etc/docker/daemon.json
      configuration file.
      
      Co-Authored-By: default avatarPierre Riteau <pierre@stackhpc.com>
      Story: 2005667
      Task: 30972
      
      Change-Id: Iaf2ee8c9f302f4684ae039bb00b2e2e5969cf1fc
      869185ea
  8. 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
    • Mark Goddard's avatar
      Disable overcloud networks for Ironic when unused · 64fd8e17
      Mark Goddard authored
      We do not need the workload provisioning, cleaning or inspection
      networks when Ironic is disabled in the overcloud.
      
      Change-Id: I300d0ef136224126f25d2c70a80a42afeea5f586
      Story: 2008207
      Task: 40992
      64fd8e17
  9. Oct 01, 2020
    • Zuul's avatar
      Merge "When EPEL install flag is not set" · 1f155b55
      Zuul authored
      1f155b55
    • Zuul's avatar
    • Mark Goddard's avatar
      Disable ironic in the overcloud by default · f9de6a02
      Mark Goddard authored
      Ironic is now disabled by default in the overcloud. This brings Kayobe's
      default set of services into line with Kolla Ansible. For environments
      using Ironic in the overcloud, set kolla_enable_ironic to true in
      kolla.yml.
      
      Story: 2008207
      Task: 40991
      
      Change-Id: I33eb4fa534847e199a599350b525d4762a2beaac
      f9de6a02
    • Zuul's avatar
      cc9a87b1
    • Stig Telfer's avatar
      When EPEL install flag is not set · e5a28188
      Stig Telfer authored
      The flag dnf_install_epel was being used to predicate installation
      of the EPEL RPM repo package, but not preventing the installation
      of configuration for access to EPEL.  This small patch completes
      the job.
      
      Updates the overcloud host configure CI job to install EPEL mirrors,
      since it was previously relying on this buggy behaviour.
      
      Change-Id: Ib417837d0772338b16ea9f7f2540549f277d5de8
      e5a28188
    • Mark Goddard's avatar
      Performance: avoid set_fact in Kolla Ansible host vars · 5bf96da1
      Mark Goddard authored
      When generating host variable files for Kolla Ansible, we have some
      heavy usage of set_fact to set variables for network interfaces, in a
      play targeted at all hosts. There are also tasks using the fail action
      plugin to perform verification.
      
      At scale this has a significant impact, due to the number of tasks
      executed against all hosts. These tasks are executed at the beginning of
      many commands, so the scope is broad.  There is also some tricky logic
      involved, which is difficult to express in Ansible/Jinja.
      
      This change replaces the use of set_fact with a custom Ansible action
      plugin. The plugin executes locally on the Ansible controller, and
      returns a dict of Ansible facts to set for each host. The plugin is
      executed once for each overcloud host, and returns all relevant facts.
      The plugin also performs verification. Extraction into a Python module
      allows for unit testing.
      
      This has been shown to have a significant improvement on execution time,
      particularly as the number of hosts reaches 100 or more.
      
      Story: 2007993
      Task: 40641
      
      Change-Id: I443da1ae05fcca2d7d8dff7db563eeda37e9f502
      5bf96da1
    • Mark Goddard's avatar
      CI: Add a CentOS 8 overcloud job with TLS enabled · 08122275
      Mark Goddard authored
      Change-Id: I5fc49fb734d0fe94f5f75c66eb4c1a935774ef30
      08122275
    • Mark Goddard's avatar
      Revert "CI: workaround overcloud upgrade issue with ironic" · b3a61a11
      Mark Goddard authored
      This reverts commit bb9a595e.
      
      Change-Id: Icd7b0f3b02bf3f22468daa8893c043ac9f3be4d6
      b3a61a11
  10. Sep 30, 2020
  11. Sep 24, 2020
  12. Sep 23, 2020
    • Michal Nasiadka's avatar
      Add missing barbican.conf support · 0f25900a
      Michal Nasiadka authored
      Story: 2008170
      Task: 40925
      
      Change-Id: I3014983f481a5dca7c93e140b3e10caa5d537669
      0f25900a
    • Pierre Riteau's avatar
      CI: Fix kayobe-tox-molecule job · c5855549
      Pierre Riteau authored
      When molecule runs, it installs ansible>2.8, which is version 2.10.0
      since today. This now also installs the ansible-base package, currently
      at version 2.10.1. Then it installs the version of ansible required by
      kayobe, i.e. ansible>=2.8.0,<2.10.0 (currently 2.9.13).
      
      We end up with a tox molecule venv containing:
      
      ansible==2.9.13
      ansible-base==2.10.1
      
      This causes the following issue:
      
      ERROR! Unexpected Exception, this is probably a bug: cannot import name 'AnsibleCollectionLoader' from 'ansible.utils.collection_loader' (/home/zuul/src/opendev.org/openstack/kayobe/.tox/molecule/lib/python3.8/site-packages/ansible/utils/collection_loader/__init__.py)
      
      This commit adds requirements.txt to the molecule tox deps, which
      ensures the correct version of ansible gets installed first.
      
      Change-Id: I7ef890a2ae6fd67f53e1b8bca244a1c0d44fea53
      c5855549
  13. Sep 22, 2020
    • Mark Goddard's avatar
      Performance: Parallelise Kolla Ansible host vars generation · b12f9e35
      Mark Goddard authored
      Kayobe generates a host_vars file for each host in the Kolla Ansible
      inventory. These contain network interfaces and other host-specific
      things. Currently this is done by iterating over all hosts, which does
      not scale well with a large number of hosts.
      
      This change extracts the host vars generation into a separate role, and
      executes it in a play targeted at all hosts, with delegate_to:
      localhost. This ensures that host variable files are generated in
      parallel.
      
      Story: 2007993
      Task: 40629
      
      Change-Id: Iae75e17024adee9c2874c14d3ed36f4c87ba48d7
      b12f9e35
    • wu.shiming's avatar
      Bump hacking min version to 3.0.1 · b778ac01
      wu.shiming authored
      hacking 3.0.1 fix the pinning of flake8 to avoid bringing in a new
      version with new checks.
      
      bumping the min version for hacking so that any older hacking versions
      which auto adopt the new checks are not used.
      
      Change-Id: I3f4fca9a0df2f45241288fd876064433f4e2f737
      b778ac01
  14. Sep 21, 2020
  15. Sep 18, 2020
  16. Sep 17, 2020
Loading