Skip to content
Snippets Groups Projects
  1. Jun 03, 2019
    • Mark Goddard's avatar
      Test Ceph upgrade in CI · 78ee0287
      Mark Goddard authored
      Add CI jobs for testing an upgrade of a multinode system with Ceph
      enabled. As for the existing upgrade job, we upgrade from the previous
      release to the current release.
      
      Change-Id: I931772ca4c63757769467a57c80dc0726a11167a
      Depends-On: https://review.opendev.org/658163
      78ee0287
  2. May 31, 2019
    • Gaetan Trellu's avatar
      Adds Qinling Ansible role · edb34898
      Gaetan Trellu authored
      Qinling is an OpenStack project to provide "Function as a Service".
      This project aims to provide a platform to support serverless functions.
      
      Change-Id: I239a0130f8c8b061b531dab530d65172b0914d7c
      Implements: blueprint ansible-qinling-support
      Story: 2005760
      Task: 33468
      edb34898
  3. May 17, 2019
    • Mark Goddard's avatar
      Fix keystone fernet key rotation scheduling · 6c1442c3
      Mark Goddard authored
      Right now every controller rotates fernet keys. This is nice because
      should any controller die, we know the remaining ones will rotate the
      keys. However, we are currently over-rotating the keys.
      
      When we over rotate keys, we get logs like this:
      
       This is not a recognized Fernet token <token> TokenNotFound
      
      Most clients can recover and get a new token, but some clients (like
      Nova passing tokens to other services) can't do that because it doesn't
      have the password to regenerate a new token.
      
      With three controllers, in crontab in keystone-fernet we see the once a day
      correctly staggered across the three controllers:
      
      ssh ctrl1 sudo cat /etc/kolla/keystone-fernet/crontab
      0 0 * * * /usr/bin/fernet-rotate.sh
      ssh ctrl2 sudo cat /etc/kolla/keystone-fernet/crontab
      0 8 * * * /usr/bin/fernet-rotate.sh
      ssh ctrl3 sudo cat /etc/kolla/keystone-fernet/crontab
      0 16 * * * /usr/bin/fernet-rotate.sh
      
      Currently with three controllers we have this keystone config:
      
      [token]
      expiration = 86400 (although, keystone default is one hour)
      allow_expired_window = 172800 (this is the keystone default)
      
      [fernet_tokens]
      max_active_keys = 4
      
      Currently, kolla-ansible configures key rotation according to the following:
      
         rotation_interval = token_expiration / num_hosts
      
      This means we rotate keys more quickly the more hosts we have, which doesn't
      make much sense.
      
      Keystone docs state:
      
         max_active_keys =
           ((token_expiration + allow_expired_window) / rotation_interval) + 2
      
      For details see:
      https://docs.openstack.org/keystone/stein/admin/fernet-token-faq.html
      
      Rotation is based on pushing out a staging key, so should any server
      start using that key, other servers will consider that valid. Then each
      server in turn starts using the staging key, each in term demoting the
      existing primary key to a secondary key. Eventually you prune the
      secondary keys when there is no token in the wild that would need to be
      decrypted using that key. So this all makes sense.
      
      This change adds new variables for fernet_token_allow_expired_window and
      fernet_key_rotation_interval, so that we can correctly calculate the
      correct number of active keys. We now set the default rotation interval
      so as to minimise the number of active keys to 3 - one primary, one
      secondary, one buffer.
      
      This change also fixes the fernet cron job generator, which was broken
      in the following cases:
      
      * requesting an interval of more than 1 day resulted in no jobs
      * requesting an interval of more than 60 minutes, unless an exact
        multiple of 60 minutes, resulted in no jobs
      
      It should now be possible to request any interval up to a week divided
      by the number of hosts.
      
      Change-Id: I10c82dc5f83653beb60ddb86d558c5602153341a
      Closes-Bug: #1809469
      6c1442c3
    • Mark Goddard's avatar
      Add unit test for keystone fernet cron generator · 25ac955a
      Mark Goddard authored
      Before making changes to this script, document its behaviour with a unit
      test.
      
      There are two major issues:
      
      * requesting an interval of more than 1 day results in no jobs
      * requesting an interval of more than 60 minutes, unless an exact
        multiple of 60 minutes, results in no jobs
      
      Change-Id: I655da1102dfb4ca12437b7db0b79c9a61568f79e
      Related-Bug: #1809469
      25ac955a
  4. Apr 19, 2019
  5. Apr 14, 2019
    • Mark Goddard's avatar
      Fix periodic CI jobs · 2b7a9dc2
      Mark Goddard authored
      Periodic jobs don't have zuul.change defined, since there is no change
      being tested. This causes an early failure when referencing zuul.change
      to set the image tag for built images. In periodic jobs we'll never need
      to build images because there is no dependent kolla change under test.
      
      Change-Id: I6d9d81cf17b7d0d7aaf87cd96418c904c46681f2
      2b7a9dc2
  6. Apr 10, 2019
    • Mark Goddard's avatar
      Remove RabbitMQ support from Bifrost · 33564a00
      Mark Goddard authored
      During the Train cycle, Bifrost switched to using JSON-RPC by default
      for Ironic's internal communication [1], avoiding the need to install
      RabbitMQ. This simplifies things, so we may as well remove our custom
      configuration of RabbitMQ.
      
      [1] https://review.openstack.org/645093
      
      Change-Id: I3107349530aa753d68fd59baaf13eb7dd5485ae6
      33564a00
  7. Apr 08, 2019
    • Mark Goddard's avatar
      Do some Train TODOs · bb9d51e2
      Mark Goddard authored
      Make an early start on the TODOs for the Train cycle.
      
      1. Remove the task that removes the vitrage_collector container, which
         was added in the Stein cycle to clean up this container which is no
         longer deployed.
      
      2. Remove globals.yml configuration in CI to disable Heat for upgrade
         jobs. Heat is now enabled in the previous release (Stein).
      
      3. Remove the deprecated variable cinder_iscsi_helper, which was renamed
         to cinder_target_helper in Stein.
      
      Change-Id: I774bf395e0bdd4db9c20c6289a22cf059fa42e1a
      bb9d51e2
  8. Apr 03, 2019
    • Mark Goddard's avatar
      Check configuration file permissions in CI · 8c4ab41f
      Mark Goddard authored
      Typically, non-executable files should have 660 or 600 and executable
      files and directories should have 770. All should be owned by the
      'config_owner_user' and 'config_owner_group' variables.
      
      This change adds a script to check the owner and permissions of config
      files under /etc/kolla, and runs it at the end of CI jobs.
      
      Change-Id: Icdbabf36e284b9030017a0dc07b9dc81a37758ab
      Related-Bug: #1821579
      8c4ab41f
  9. Mar 27, 2019
    • Mark Goddard's avatar
      Test upgrades in CI · c23c9b2c
      Mark Goddard authored
      This patch adds two new jobs:
      
      * kolla-ansible-centos-source-upgrade
      * kolla-ansible-ubuntu-source-upgrade
      
      These jobs first deploy a control plane using the previous release of
      Kolla Ansible, then upgrade to the current release.
      
      Because we can't change the branch of the git repository on the Zuul
      executor, we change the branch of the kolla-ansible repository on the
      primary node to the branch of the previous release, in this case
      stable/rocky. A new remote-template role has been added that supports
      generating templates using a remote template source, to generate config
      files using the previous kolla-ansible branch.
      
      If the change being tested depends on a kolla change for the current
      branch, then we build images. Rather than using the current
      kolla-ansible version to tag the images, we now tag them with
      change_<gerrit change ID>. This is because the version of kolla-ansible
      will change from the previous release to the current one as we upgrade
      the system.
      
      Finally, it should be noted that the 'previous_release' variable in the
      Zuul config needs to be updated with each release, since this sets the
      release of kolla-ansible that is installed initially.
      
      Depends-On: https://review.openstack.org/645089/
      Depends-On: https://review.openstack.org/644250/
      Depends-On: https://review.openstack.org/645816/
      Depends-On: https://review.openstack.org/645840/
      Change-Id: If301e0affcd55360fefe3b105f023ae5c47b0853
      c23c9b2c
  10. Mar 21, 2019
    • Mark Goddard's avatar
      Wait for cinder volume to become available in CI · e956cd87
      Mark Goddard authored
      Fixes a race condition where sometimes a volume would still be in the
      'creating' state when trying to attach it to a server.
      
      Invalid volume: Volume <id> status must be available or downloading to
      reserve, but the current status is creating.
      
      Change-Id: I0687ddfd78c384650cb361ff07aa64c5c3806a93
      e956cd87
  11. Mar 14, 2019
  12. Mar 11, 2019
    • Erol Guzoglu's avatar
      Support the prometheus elasticsearch exporter · 14ab9a7c
      Erol Guzoglu authored
      This patch implements the support for the elasticsearch-exporter in
      kolla-ansible
      
      The configuration and prechecks are reused from the other exporters
      
      Depends-On: Id138f12e10102a6dd2cd8d84f2cc47aa29af3972
      Change-Id: Iae0eac0179089f159804490bf71f1cf2c38dde54
      14ab9a7c
  13. Mar 10, 2019
    • Victor Coutellier's avatar
      Fix kolla-docker possible undefined variable · 3bb4c199
      Victor Coutellier authored
      It is possible to reference undefined variable in kolla-docker module if
      DockerWorker object initialization fail, so the current behaviour will
      crash the playbook with the unwanted error message :
      
      UnboundLocalError: local variable 'dw' referenced before assignment
      
      Change-Id: Ic8d26b11f93255220888b5406f8ab4a6f81736c2
      Closes-Bug: #1819361
      3bb4c199
  14. Mar 08, 2019
    • Bai Yongjun's avatar
      Add cyborg to kolla-ansible · ed2fd243
      Bai Yongjun authored
      Because kolla-ansible not have cyborg so should add it.
      
      Implements: blueprint add-cyborg-to-kolla-ansible
      
      Depend-On: I497e67e3a754fccfd2ef5a82f13ccfaf890a6fcd
      
      Change-Id: I6f7ae86f855c5c64697607356d0ff3161f91b239
      ed2fd243
  15. Mar 01, 2019
    • Mark Goddard's avatar
      Add cinder-lvm CI job · c41c9a0c
      Mark Goddard authored
      Tests Cinder with an LVM/iSCSI backend, including attaching a volume to
      an instance.
      
      Change-Id: I6963b5e81d7ac88dd1bdfb94b62d9d63028b9786
      c41c9a0c
  16. Feb 21, 2019
  17. Jan 24, 2019
    • binhong.hua's avatar
      add ulimit support for kolla_docker · 3d3f5f16
      binhong.hua authored
      By default, docker containers inherit ulimit from limits of docker
      deamon. On CentOS 7, docker daemon default NOFILE is 1048576.
      It can found in /usr/lib/systemd/system/docker.service.
      The big limit will cause many problem. we should control it in
      production environment.
      
      Change-Id: Iab962446a94ef092977728259d9818b86cfa7f68
      3d3f5f16
  18. Jan 23, 2019
  19. Jan 21, 2019
    • Jorge Niedbalski's avatar
      [prometheus] Support the prometheus openstack exporter · 6c64b7c7
      Jorge Niedbalski authored
      This patch implements the initial support for the
      openstack-exporter[0] in the kolla-ansible
      prometheus monitoring system.
      
      The configuration and prechecks are reused from the other
      exporters and a new template is provided for generating
      a os-client-config file required by the exporter.
      
      The default scrape interval is 60 seconds, but it can
      be extended via a configuration option.
      
      [0] https://github.com/Linaro/openstack-exporter
      
      Change-Id: I4a34c4bb56e74b5cd544972cbd6540d9acb6e4a1
      6c64b7c7
  20. Jan 18, 2019
    • Mark Goddard's avatar
      Wait for volume attachment in CI before detach · 9c906a17
      Mark Goddard authored
      In some cases the volume attachment is not finished by the time we
      attempt to detach it, causing the following error:
      
      Volume status must be 'in-use' and attach_status must be 'attached' to detach.
      
      This change waits for the volume to be attached before detaching.
      
      Change-Id: Id23d114cf8a2b40f8f0784cbfb84e9fa0829adc0
      9c906a17
  21. Jan 01, 2019
    • tone.zhang's avatar
      Add Kolla Ceph filestore CI jobs · 6786bc5b
      tone.zhang authored
      
      Since Rocky bluestore is the default store type used by Kolla Ceph.
      Filestore is still used by the customers. The patch allows deploy
      both Ceph bluestore OSD and Ceph filestore OSD in Kolla-ansible CI
      jobs.
      
      Change-Id: Iaa7c1b2ff35eb649c3a6d9f7266463d8961cdc9e
      Signed-off-by: default avatartone.zhang <tone.zhang@arm.com>
      6786bc5b
  22. Dec 21, 2018
  23. Dec 19, 2018
  24. Dec 17, 2018
    • Mark Goddard's avatar
      Support Docker CE in bootstrap-servers · 48aea563
      Mark Goddard authored
      Kolla Ansible's bootstrap-servers command provides support for
      installing the Docker engine. This is currently done using the packages
      at https://apt.dockerproject.org and https://yum.dockerproject.org.
      These packages are outdated, with the most recent packages from May 2017
      - docker-engine-17.05.
      
      The source for up to date docker packages is
      https://download.docker.com, which was introduced with the move to
      Docker Community Edition (CE) and Docker Enterprise Edition (EE).
      
      This change adds support to bootstrap-servers for Docker CE for CentOS
      and Ubuntu.
      
      It also adds a new variable, 'enable_docker_repo', which controls
      whether a package repository for Docker will be enabled.
      
      It also adds a new variable, 'docker_legacy_packages', which controls
      whether the legacy packages at dockerproject.org will be used or the
      newer packages at docker.com. The default value for this variable is
      'false', meaning to use Docker CE.
      
      Upgrading from docker-engine to docker-ce has been tested on CentOS 7.5
      and Ubuntu 16.04, by running 'kolla-ansible bootstrap-servers' with
      'docker_legacy_packages' set to 'false'. The upgrades were successful,
      but result in all containers being stopped. For this reason, the
      bootstrap-servers command checks running containers prior to upgrading
      packages, and ensures they are running after the package upgrade is
      complete.
      
      As mentioned in the release note, care should be taken when upgrading
      Docker with clustered services, which could lose quorum. To avoid this,
      use --serial or --limit to apply the change in batches.
      
      Change-Id: I6dfd375c868870f8646ef1a8f02c70812e8f6271
      Implements: blueprint docker-ce
      48aea563
  25. Dec 14, 2018
    • Mark Goddard's avatar
      Create cells before starting nova services · 365bb517
      Mark Goddard authored
      Nova services may reasonably expect cell databases to exist when they
      start. The current cell setup tasks in kolla run after the nova
      containers have started, meaning that cells may or may not exist in the
      database when they start, depending on timing. In particular, we are
      seeing issues in kolla CI currently with jobs timing out waiting for
      nova compute services to start. The following error is seen in the nova
      logs of these jobs, which may or may not be relevant:
      
      No cells are configured, unable to continue
      
      This change creates the cell0 and cell1 databases prior to starting nova
      services.
      
      In order to do this, we must create new containers in which to run the
      nova-manage commands, because the nova-api container may not yet exist.
      This required adding support to the kolla_docker module for specifying a
      command for the container to run that overrides the image's command.
      
      We also add the standard output and error to the module's result when a
      non-detached container is run. A secondary benefit of this is that the
      output of bootstrap containers is now displayed in the Ansible output if
      the bootstrapping command fails, which will help with debugging.
      
      Change-Id: I2c1e991064f9f588f398ccbabda94f69dc285e61
      Closes-Bug: #1808575
      365bb517
  26. Dec 05, 2018
    • Eduardo Gonzalez's avatar
      Allow set tty for containers · 846c15d8
      Eduardo Gonzalez authored
      This change adds support to comfigure tty,
      it was enabled by default but a recent patch
      removed it. Some services such as Karaf in opendaylight
      requires a TTY during startup.
      
      Closes-Bug: #1806662
      Change-Id: Ia4335523b727d0e45505cbb1efb40ccf04c27db7
      846c15d8
  27. Nov 26, 2018
  28. Nov 21, 2018
  29. Nov 20, 2018
  30. Nov 29, 2018
    • Mark Goddard's avatar
      Use openstack command in CI · 07d53518
      Mark Goddard authored
      Switch the CI test script to use the openstack command rather than nova
      etc.
      
      Change-Id: Id1c6d35e1e50987d230adb7942da6a7ae5c0f050
      07d53518
  31. Nov 08, 2018
    • Eduardo Gonzalez's avatar
      Refactor tests/templates/globals.yml · 26af377a
      Eduardo Gonzalez authored
      Improve where openstack services are deployed
      to a variable, so we will avoid many conditions
      when more CI jobs are added with different configs.
      Heat is enabled by default in globals.yml, lets deploy it
      at least.
      
      Change-Id: If0f009cf434c3ed5874b3171d8c75911ef8e4be1
      26af377a
  32. Nov 06, 2018
    • Eduardo Gonzalez's avatar
      Deploy mistral-event-engine service · db4e2583
      Eduardo Gonzalez authored
      This PS adds deployment of mistral-event-engine service
      within mistral role.
      
      Change-Id: If187e1a49a321d1e85fb3cfff2ea037e567b30dc
      db4e2583
    • Mark Goddard's avatar
      Refactor CI testing scripts · f92de48c
      Mark Goddard authored
      This change is intended to ease the addition of new test scenarios, by
      splitting the existing setup_gate.sh script up into several smaller
      scripts. We may wish to further break these scripts up in future,
      depending on the requirements of new test jobs.
      
      Change-Id: Ifa442ac79a54f749c56d20f5f7383c3852d95268
      f92de48c
  33. Nov 05, 2018
  34. Nov 03, 2018
  35. Oct 22, 2018
  36. Oct 02, 2018
    • Mark Goddard's avatar
      Don't use 'become' in CI tests · 8399fc78
      Mark Goddard authored
      Kolla Ansible now claims [1] to support executing as a user other than
      root.  We should ensure that this is tested in CI.
      
      This change removes the 'become' from hosts in the inventory, and sets
      the remote user to 'kolla', as configured via the bootstrap-servers
      command. The bootstrap-servers command and other ansible commands
      executed before it still need to execute as the zuul user and not as
      kolla, since kolla does not exist yet.
      
      The autogenerated SSH private key in passwords.yml is now added to the
      zuul user's SSH config, such that it can SSH as the kolla user, which
      has authorised this key.
      
      [1]
      https://blueprints.launchpad.net/kolla-ansible/+spec/ansible-specific-task-become
      
      Change-Id: I8f3587e2908bc5b8889cd6fbc01981a6186d33e6
      8399fc78
Loading